關于訪問修飾符的問題 求大神指點~
。。視頻中說:
?private:只能在本類中調用;
默認的:只能在同一個包中調用;
protected:只能在同一個包中調用,要是不同包,只能是子類;
public:所有的地方都能用
然后我自己嘗試了一下,發現有一下幾點疑問:(主要是二級包的問題)
在二級包中的子類中不能調用public修飾的變量;
在二級包中的子類不能調用protected修飾的變量;
下面有代碼!
。。視頻中說:
?private:只能在本類中調用;
默認的:只能在同一個包中調用;
protected:只能在同一個包中調用,要是不同包,只能是子類;
public:所有的地方都能用
然后我自己嘗試了一下,發現有一下幾點疑問:(主要是二級包的問題)
在二級包中的子類中不能調用public修飾的變量;
在二級包中的子類不能調用protected修飾的變量;
下面有代碼!
2015-10-07
舉報
2015-11-22
只能在方法塊中對成員變量進行修改
2016-04-13
//二級包中的子類
package com.shiyan2.Second;
//本包中的二級包下的子類中:
import com.shiyan2.C;
public class G extends C {
? ? public static void main(String[] args){
? ? ? ? ? ? C c=new C();
? ? ?c.a=1; ? ? ? ? ? ? ?
? ? ? c.b=2; ? ? ? ? ? ??
? ? ? c.c=3;
? ? ? c.d=4;
? ? }
}
你把調用放到方法里面去,直接在類里面調用是不行的,C可以new出來,C里面的abcd引用不了
2015-11-14
2015-10-07
//二級包中的子類
package com.shiyan2.Second;
//本包中的二級包下的子類中:
import com.shiyan2.C;
public class G extends C {
? ? ? C c=new C();
? ? ? c.a=1; ? ? ? ? ? ? ?//這里四個調用都報錯 ?(public)
? ? ? c.b=2; ? ? ? ? ? ? //Syntax error on token "a", VariableDeclaratorId expected after this ?token
? ? ? c.c=3;
? ? ? c.d=4;
}
2015-10-07
package com.shiyan2;
//聲明不同修飾符的變量的類
public class C {
? ? public void print(){
? ? System.out.println("fulei de fangfa ");
? ? ? ??
? ?
? ?
? ? }
? ??
? ? public int a ;
/* 6.在二級包的該類的子類下面不能被調用 ? ??
? ??
*/ ? ?
? ? protected int b; ? ? ? ? //總結:只要同包都能調用,并且區別默認的是:它在其他包的子類中也能被調用
/* 3.在其他包的普通類下面不能調用 ?
?* 5.5.在二級包中的普通類下面不能被調用(其實二級包也算是其他包)
?* 6.在二級包的該類的子類下面不能被調用
? ??
*/ ? ?
? ? int c; ? ? ? ? ? ? ? ? //總結:只要同包下都能調用(其中二級包不算同包?。?/p>
/* 3.在其他包的普通類下面不能被調用
?* 4.在其他包的該類的子類下不能被調用?
?* 5.5.在二級包中的普通類下面不能被調用(其實二級包也算是其他包)
?* 6.在二級包的該類的子類下面不能被調用
? ??
*/ ? ?
? ? private int d; ? ? ? ? //總結:只有在本類中可以調用!
? ?/* 1.在同一個包下的其他類中就不能調用
? ? * 2.在同一個包下的子類中也不能調用(其實子類也算是同一個包下的類)
? ? * 3.在其他包的普通類下不能被調用
? ? * 4.在其他包的該類的子類下不能被調用
? ? * 5.在二級包中的普通類下面不能被調用(其實二級包也算是其他包)
? ? * 6.在二級包的該類的子類下面不能被調用
? ? */
? ??