當前位置:首頁 » 密碼管理 » java變數訪問許可權

java變數訪問許可權

發布時間: 2022-04-19 07:15:40

java訪問許可權中,共有變數共有方法、友好變數友好方法以及受保護的成員變數和方法,他們都是在A類

在你指定的情況下,三種類型差異不大,都可以被引用。
訪問許可權的級別排列,從高到低是pubic、protected、友好的、private。
這個許可權級別涉及很多情況,在不同情況下差異很大:
public修飾的變數和方法可以被任何類繼承或使用
protected修飾的變數或方法:繼承-當前類,同包類,不同包類。使用-當前類,同包類。
友好修飾的變數和方法只能被當前類,同包類繼承或使用。
private修飾的變數和方法只能被當前類使用。不存在繼承。

❷ java 的class 為什麼不可以是protected訪問許可權

1. protected 訪問控制符能被用於方法和成員變數。

2. 聲明為protected的方法和成員變數能被同一個包里的所有類所訪問,就像默認修飾符package一樣。

3. 能被該類的子類所訪問,子類可以和父類不在一個包中。

這樣,當你想讓一個類中的某個方法或成員變數在包中都可見,而且其子類也能訪問(子類有可能和父類不在同一個包中)但又不想讓所有類都可以訪問該類時,就可以用protected修飾符。
可訪問性: public > protected > package >private
注意:
4. But a subclass in another package can access the protected members in the super-class via only the references of subclass or its subclasses. A subclass in the same package doesn』t have this restriction. This ensures that classes from other packages are accessing only the members that are part of their inheritance hierarchy.
但是位於與父類不同包中的一個子類,能夠使用其父類中protected成員的途徑只能是,使用子類(或者是子類的子類)的引用。子類和父類在同一個包中則沒有這個限制。這樣就保證了其他包中的類只能訪問它們所繼承的部分成員。
下面的例子可以說明上述幾點:(特別注意第4點)
1 創建一個父類Bird.java,放在birdpack包中,父類中有一個protected int的成員變數nFeathers:
package birdpack; public class Bird { protected int nFeathers; }

2 創建Bird的一個子類Duck1.java,放在ckpack包中,這個程序說明在子類中直接使用父類的protected變數是可以的,父類的protected許可權的成員變數可以被子類繼承:
package ckpack; import birdpack.Bird; public class Duck1 extends Bird { public void setn(int ck1n) { nFeathers = ck1n; } }

3 創建Bird的一個子類Duck2.java,放在ckpack包中,這個程序說明在子類中通過子類的對象訪問父類的protected成員是可以的:
package ckpack; import birdpack.Bird; public class Duck2 extends Bird { public void constructor(int newDuck2) { Duck2 d2 = new Duck2(); //在子類中通過子類的對象訪問父類中的protected變數 d2.nFeathers = newDuck2; } }

4 創建Bird的一個子類Duck3.java,放在ckpack包中,這個程序說明在子類中使用父類的對象訪問父類的protected成員反而是不行的:
package ckpack; import birdpack.Bird; public class Duck3 extends Bird { public void constructor(int newDuck3) { Bird b = new Bird(); //子類中用父類對象反而不能訪問父類中的protected變數 //b.nFeathers = newDuck3; } }

5 創建Bird的一個子類Swan.java,放在ckpack包中,這個程序說明在子類中使用其他子類的對象訪問父類的protected成員也是不行的:
package ckpack; import birdpack.Bird; public class Swan extends Bird { public void constructor(int swan) { Duck1 d1 = new Duck1(); //子類中用另外一個子類的對象也不能訪問父類中的protected變數 //d1.nFeathers = swan; } }

-------------------------------------------------------------------------------------------------------------------------------
轉載這篇文章,主要是為了說明,雖然在java中,父類中protected許可權的成員變數可以被子類訪問,但是還是有條件的,具體如下:
1.在子類中直接使用父類的protected變數是可以的,父類的protected許可權的成員變數可以被子類繼承
2.在子類中通過子類的對象訪問父類的protected成員是可以的
3.在子類中使用父類的對象訪問父類的protected成員反而是不行的
4.在子類中使用其他子類的對象訪問父類的protected成員也是不行的

❸ JAVa類中默認的成員變數的訪問權問題

java作用域public ,private ,protected 及不寫時的區別
在說明這四個關鍵字之前,我想就class之間的關系做一個簡單的定義,對於繼承自己的class,base class可以認為他們都是自己的子女,而對於和自己一個目錄下的classes,認為都是自己的朋友。

1、public:public表明該數據成員、成員函數是對所有用戶開放的,所有用戶都可以直接進行調用

2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財產神聖不可侵犯嘛,即便是子女,朋友,都不可以使用。

3、protected:protected對於子女、朋友來說,就是public的,可以自由使用,沒有任何限制,而對於其他的外部class,protected就變成private。

4、default 則在包內包外的子類都可見。

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

public √ √ √ √

protected √ √ √ ×

friendly √ √ × ×

private √ × × ×

❹ java訪問許可權控制問題

默認訪問許可權(包訪問許可權):如果一個類的方法或變數被包訪問許可權修飾,也就意味著只能在同一個包中的其他類中顯示地調用該類的方法或者變數,在不同包中的類中不能顯示地調用該類的方法或變數。
private:如果一個類的方法或者變數被private修飾,那麼這個類的方法或者變數只能在該類本身中被訪問,在類外以及其他類中都不能顯示地進行訪問。
protected:如果一個類的方法或者變數被protected修飾,對於同一個包的類,這個類的方法或變數是可以被訪問的。對於不同包的類,只有繼承於該類的類才可以訪問到該類的方法或者變數。
public:被public修飾的方法或者變數,在任何地方都是可見的。

❺ java方法中變數的定義為什麼不能用訪問許可權修飾詞

你要弄清楚變數和屬性的區別。
變數是方法體中定義的。
屬性是類體中定義的。

而許可權標示符只用於修飾屬性和方法。不修飾變數,因為變數屬於方法體私有。

舉個栗子:
你有一輛轎車,你可以給你的轎車加以許可權,只能你自己用,還是可以給你老婆用,或者給所有人用——你本人就是一個類,這個車就是你的一個屬性,表面你是個有車的人。

既然你有了車了,那麼,你肯定也有一個方法叫開車,你可以為自己開,也可能為別人開,這就看你給自己的這個方法怎麼加許可權了。
如果是Static,那就是計程車,任何人都能叫你開車
如果是Public,你人比較好,可以為朋友開車
如果是Protect,那純粹私家車,給自己或家人開
如果是Private,就只給自己開了

但是至於你開車方法裡面會用到什麼,比如說:導航,乘客不知道,朋友不知道,家人不知道,他們只關心你能把他們送到目的地,不需要知道你怎麼開的,等到開車結束,導航也隨即結束,失效。

❻ java中A類的成員變數x是默認的訪問許可權,在A類的子類中可以訪問該成員變數嗎

可以,A類的子類叫內部類,可以訪問A類的所有數據成員以及成員方法,包括私有成員;在類的繼承中,默認訪問性的成員方法可以被包中任何類和其它包中的子類所訪問,但私有成員除外……

❼ java類中變數如果定義時沒給訪問許可權默認是什麼啊

如果沒有寫就是默認訪問許可權。

java的類有2種訪問許可權,public、默認

而方法和變數有4種:public、默認、protected、private

其中默認訪問許可權和protected很相似,有著細微的差別。

public意味著任何地方的其他類都能訪問
默認則是同一個包的類可以訪問。
protected表示同一個包的類可以訪問,其他的包的該類的子類也可以訪問。
private表示只有自己類能訪問

❽ 為什麼說java成員變數設置的一個原則,就是盡可能設置成最小的訪問許可權。

訪問許可權有四種:public(公有) protected(保護) private(私有) friendly(默認),盡可能的設置成最小訪問許可權就是把數據設置成private的,如:
private int age;
void setAge(int age){this.age = age;}
int getAge(){return age;}
這樣設置的話,這有自己類的方法能夠調用age的值,別的類不能直接去調用或修改age的值了,只能通過set get方法來實現,有利於數據的保護和隱藏,這就是JAVA的一個重要的特點——封裝!但是並不是說所有的數據都要設置成private,那樣會很麻煩,根據需要吧!

❾ 關於java訪問許可權的問題:如果一個類被申明為public類,那麼這個類中的方法和變數都

不是的,
裡面的變數也可以是private.

訪問許可權這個問題很好理解.
如果變數是public的,那麼其他的類就可以直接調用.
如果是private的,那麼要通過set和get方法來獲得變數.

一般都推薦把變數設置為private,然後通過set和get獲取

方法就要根據具體情況而言了.

❿ 在Java中類的成員變數的訪問許可權有哪幾種

public 可以被所有其他類訪問
protect 自身,子類及同一個包中類可以訪問
private 只能被自身訪問和修改
package 同一個包中的類可以訪問

建議變數使用private,這樣可以防止干擾.

可以把方法聲明成public.

熱點內容
用什麼寫c語言 發布:2025-05-15 21:35:56 瀏覽:417
linux讀取u盤 發布:2025-05-15 21:32:13 瀏覽:507
c語言dos 發布:2025-05-15 21:18:17 瀏覽:663
sci編譯英文 發布:2025-05-15 21:16:57 瀏覽:382
大貓如何設置密碼 發布:2025-05-15 21:15:32 瀏覽:764
什麼叫蘋果版的和安卓版的手機 發布:2025-05-15 21:05:18 瀏覽:253
編程找點 發布:2025-05-15 20:43:10 瀏覽:587
php上傳臨時文件夾 發布:2025-05-15 20:43:00 瀏覽:657
impala資料庫 發布:2025-05-15 20:42:12 瀏覽:649
android安裝插件 發布:2025-05-15 20:41:31 瀏覽:241