導航:首頁 > 編程語言 > java包訪問

java包訪問

發布時間:2023-05-25 11:16:49

java中包訪問許可權private,protected,public和default的區別

public:可以被所有其他類所訪問

private:只能被自己訪問和修改

protected:自身、子類及同一個包中類可以訪問

default:同一包中的類可以訪問,聲明時沒有加修飾符,認為是friendly。

Ⅱ java中的兩個不同的包如何訪問

要麼帶入import
要麼在程序用到其他包的類的部分直接將該類掛上完整路徑,建議第一種

Ⅲ JAVA小問題,關於類訪問另一個包中的類的問題,請大神看清問題在作答

文件示例

張三告訴班主任:「我今年8歲了。」



Ⅳ java中訪問許可權的控制。java默認的是包訪問許可權,但是對於有些情況如何處理呢。例如有四組類abcd(每組里

如果不考慮其他的類的話,c訪問d,a不能訪問d,那麼把d相關許可權設為default,a,c處在不同包里,c、d在同一個包里。a,c都訪問b,那麼就讓b的許可權設為公開。

但這可能導致包之間管理的混亂。

如果一定要跨包訪問,但又不願設立public的訪問許可權,那麼單靠JAVA語言的訪問控制很難做到,則可以稍微提升一下耦合度,並藉助多態來實現。

比方說,a、b是兩個不同的包,要讓a能訪問b的default的東西,那麼可以如下:


a設立一個介面:

publicinterfaceIA
{
voidF();
}

某個要使用b的函數

publicclassA1
{
……
privateIAa;
……
publicvoidG(IAa)
{
……
this.a=a;//這樣就可以在別的方法里用
a.F();//多態,a根本不知道b里有什麼類也能訪問相應的方法。
……
}
}

以上是a里的,下面是b里的:

如果是整個類都是default的

classB1implementsIA
{
publicvoidF(){……}
publicB1()
{
newA1().G(this);//這樣就把自己傳給了a,a不用知道自己是什麼東東也能使用F方法。
}
}

如果是類的部分方法為default的

publicclassB2
{
……
voidFF();//想讓這個方法被a調用。
privateclassB22implementsIA//把B22的實例傳給a
{
publicvoidF()
{
FF();//這就等於讓a調用FF方法了。
}
}
}

上面這種方法缺點不少,得由b親自把自己的實例傳給a,使得類間的關系變得有點復雜,但是用好了還是可以最大程度降低其缺點。

上面這種結果是你要的嗎?還有什麼特別的要求嗎?

Ⅳ java中包到底是什麼意思包訪問許可權又是什麼意思,有C++基礎。

是否是說 first.java中有A B C 三個類,second.java中有D E F 三個類,那麼first和second是兩個不同的包?不是,這是java文件的組織方式,因為java強制要求一個public類必須在一個同名的文件中,但是多個包訪問許可權的類是可以在同一個文件夾中的

First.java

classA{
voidprint(){
System.out.println("A");
}
}
classB{
publicvoidprint(){
System.out.println("B");
}
}
classC{
publicvoidprint(){
System.out.println("C");
}
}

Second.java

classE{
publicvoidprint(){
System.out.println("E");
}
}
classD{
publicvoidprint(){
System.out.println("D");
}
}
classF{
publicvoidprint(){
System.out.println("F");
}
}

A B C D E F都是在同一個包中,而不是ABC在firstFirst包中,而DEF在Second包中

改寫Second.java

packagepackage2;
classE{
publicvoidprint(){
System.out.println("E");
}
}
classD{
publicvoidprint(){
System.out.println("D");
}
}
classF{
publicvoidprint(){
System.out.println("F");
}
}

你現在first.java中是無法訪問EDF類的,這才是包的概念,另一個包中的(First.java中的ABC是在默認包中也是另外一個包)是無法訪問EDF類的,因為他們是包訪問許可權,類只有兩種許可權,包訪問許可權和public許可權

包訪問是說我可以在first.java中訪問second的某些方法或生成D E F對象嗎?

是說如果first.java和second.java是在同一個包中,那麼是可以的,但是如果不在同一個包中,並且那些類或方法是包訪問許可權,那是沒有辦法訪問的

在添加一個類Third.java

packagepackage2.third;
classThird{
publicvoidprint(){
System.out.println("E");
}
}
classD{
publicvoidprint(){
System.out.println("D");
}
}
classF{
publicvoidprint(){
System.out.println("F");
}
}


這些類都是包訪問許可權,那麼E.java中的類可以訪問嗎?不可以,包沒有嵌套的概念,即使Third.java是在E.java的的子包中即E.java在package2中,而Third.java在package2.third

java中類的訪問許可權(不是內部類,內部類必須另加討論)只有public和包訪問許可權,要麼所有包中的類和方法都可以訪問,要麼只有在同一個包中的類才能訪問,並且

packagepackage2.third;

是在package2.third包中

packagepackage2;

實在package2包中,這是兩個不同的包,即使在電腦上third文件夾是在package2文件夾中

Ⅵ java包訪問許可權default和protected的區別

包訪問沒有許可權的說法,import什麼包就用什麼包。
protected private 指的是方法或內部類的訪問許可權。

Ⅶ Java 包(package)應用及訪問控制問題

果然還是分的魅力大,一樣的帖子居然差異那麼大,我就直接考過來了

分是不是少了點,我還得翻翻書,再看看,自己還得動手才行呀,實踐出真理

我一邊做一邊寫,D類為B的子類是不行的,預設類只能被包頌肆內的類訪問,

預設類相當於是包內的public,對於包外是不可見的,這里D只能繼承A類

還有預設方法也和預設類一樣,只是包內的public,這里D繼承A後,並不能用

A中的預設方法,所以由上得出:預設==包內的public,對於包外是private

Q3,對於包外的類,只能訪問public成員

Q4,不能訪問包外的預設類

Q5,Q6和上面是一樣的

Q7,能訪問除了private以外的所有成員

其實這4種訪問控制形成了一個完整的訪問脊櫻宏機制,

這里說一下protected 在包內 = public

在包外,只能被子類訪問,意思就是在包外的類只有櫻冊繼承了該類才能

訪問該類的protected成員

你最好去找一個訪問權力的標單,清晰明朗的說明了一切

Ⅷ java中同一個包中自由訪問的問題

你被調用的類裡面也有main主函數

這樣寫就可以了段塌猛衫姿

publicclassHelloTest{

publicstaticvoidmain(String[]args)
{
Helloh=newHello();
h.hello();
}

}

//被調用的類
class握橋Hello{
publicvoidhello()
{
System.out.print("hello,world");
}

}

我這兩個類你分開寫也行 我現在全復制在一起方便你查看

Ⅸ java同一個包下的類互相調用,應用哪個訪問許可權

java同一個包下的類互扮帶亂相調用,應用族之間數據交流訪問許可權,主要是你要通過相對應的數據交換,還有相對應的數據調用,通過這樣的方式進行使用對應的訪問許可權,所廳檔以你可以應用相對應的數據交流的訪問許可權,是同一個包下面的類目互行渣相調用

Ⅹ java包(package)應用及訪問控制問題,如何編寫程序

1、 C 類能只正常訪問 A類 和 A類用public修飾的屬性的方法,
2、如果B類為public C類能訪問B類的用public修改的屬性和余伏春方法
3、D類能訪問A類的用public 和 protected 修飾的屬性的方法
4、如果B類為public 修改的 D類能訪問用public 修飾的豎耐屬性的方法
public:共有的,包外的都可以訪問,兒女和朋友可以訪問不用說了(所有地方)
protected:保護的,兒女和朋友和我的關系比較密切,他們可以訪問,其他的免談(相同包或者不同包的子廳穗類)
private:私有的,兒女不行,更不要說朋友,只有我自己本身可以訪問(只有自己內部訪問)
friendly:什麼都不寫時默認是friendly,朋友可以訪問 (相同包可以訪問,不同包子類「不」能訪問)

閱讀全文

與java包訪問相關的資料

熱點內容
數據線插頭怎麼接頭 瀏覽:577
網路載入視頻失敗是怎麼回事 瀏覽:805
傳奇賬號在哪個文件夾里 瀏覽:346
百度app在哪裡安裝 瀏覽:587
如何設置路由器網路不斷網 瀏覽:471
傳到qq群里的文件怎麼刪除 瀏覽:861
索尼安卓71更新日誌 瀏覽:234
怎麼找手機里的垃圾app 瀏覽:540
2015藍橋杯代碼填空 瀏覽:698
安卓資料庫dbexecSQL 瀏覽:227
doc重命名文件格式 瀏覽:728
getscreen截圖工具下載 瀏覽:719
共識數據是什麼時候開始的 瀏覽:96
數碼管顯示電壓程序 瀏覽:479
資料庫文件有哪個 瀏覽:543
途強儲存在哪個文件夾 瀏覽:172
如何恢復被覆蓋文件 瀏覽:611
iphone5用哪個版本最好 瀏覽:327
extjsgrid禁用 瀏覽:426
如何查找國外論文的編程代碼 瀏覽:366

友情鏈接