protected修飾的變數為什麼不能跨包訪問

時間 2022-07-08 22:55:07

1樓:

protected 的元素只能被繼承和「在類本身的 非靜態方法 中使用 」。

注意是非靜態方法,你引用q.k是在main函式,即靜態函式中呼叫,不屬於非靜態方法,

屬於外部呼叫。

修改k為public就可以了。

如果不修改的話,建議寫個非靜態方法 內部訪問q.kpublic void accessk()然後main函式中,呼叫這個方法訪問:

public static void main(string args)

2樓:匿名使用者

作用域 當前類 同一package 子孫類 其他package

public √ √ √ √

protected √ √ √ ×

friendly √ √ × ×

private √ × × ×

為什麼j**a裡面的介面的訪問控制修飾符不能是protected呢?

3樓:在雙龍洞努力生活的康乃馨

介面只包含常量和抽象方法。裡面的成員變數全部(注意:是全部)都是public final static的,由於這個原因,修飾符忽略不寫。

如: int i = 1; 在介面裡其實等價為 public final static int i = 1;

不可再加或修改為其他修飾符。

(另外見介面裡的抽象方法,同理也是預設省略了public abstract)

4樓:風月無邊

在軟體產品中,同乙個介面可能被數千個專案呼叫,如果不適用public,即使把介面打成jar包了,別人也無法呼叫

j**a中子類無法繼承父類中的protected變數?

5樓:嗯阿丘

protected的訪問許可權是本類,同包,繼承類

正常來說,雖然兩個類不在同乙個包下,但是繼承類test也是可以訪問到父類person的age;

但是你建立的是person的物件,person物件p在test類裡面,既不是本類,也不是同包,也不是繼承類,所以訪問不到age;

6樓:

訪問父類變數不是這樣的,super.age才是,你這樣是訪問的是父類物件的保護變數吧。

在j**a的實際開發中,什麼時候要用到protected來修飾變數或方法

7樓:匿名使用者

extends

super

8樓:

需要繼承又不公開的時候才會用的這個

j**a子類和父類在不同的包內時子類能訪問父類的protected變數嗎?

9樓:絔笙的菋萊

protected,可以被同一包中的所有類訪問,也可以被所有子類訪問。(子類沒在同一包中也可以訪問)

js中,var修飾變數名,它可有可無嗎

js中 允許在定義變數的時候 不加var 修飾符。js會在當前作用域下尋找上下文是否定義了此變數,如果沒有找到則會為這個變數分配記憶體。當且將其視為window的成員。也就是全域性變數。如果加了var 修飾符。js會重新為這個變數分配記憶體,不論當前上下文中是否已經定義過了。這個變數的作用域就為當前...

假設變數s a b c均已定義為整型變數

假設程式變換一下形式,結果應當是一樣的 s 0 for b 1 b c b s 1 s a 則,前面的迴圈讓b增加了c個1,即s c 整個程式就等效s a c 了 另一個角度來解讀程式 s的初始值是a,然後通過迴圈讓s在其基礎上增加了c個1,即增加了c 趙萬東 s a for b 1 b c b 將...

設隨機變數x的概率密度為f x,設隨機變數X的概率密度為f x 1 1 x032 ,則2X的概率密度為

果果和糰子 fy y 0 首先求y的分佈函式fy y fy y p p p fx y 3 2 所以y 2x 3的概率密度為 fy y fx y 3 2 y 3 2 y 3 4 1 2 y 3 8 3 y 19 y 3 8 3 y 19 故fy y 0 聊慶赫連含煙 設隨機變數x的概率密度為f x 2...