關(guān)于訪問修飾符的問題 求大神指點(diǎn)~
。。視頻中說:
?private:只能在本類中調(diào)用;
默認(rèn)的:只能在同一個(gè)包中調(diào)用;
protected:只能在同一個(gè)包中調(diào)用,要是不同包,只能是子類;
public:所有的地方都能用
然后我自己嘗試了一下,發(fā)現(xiàn)有一下幾點(diǎn)疑問:(主要是二級包的問題)
在二級包中的子類中不能調(diào)用public修飾的變量;
在二級包中的子類不能調(diào)用protected修飾的變量;
下面有代碼!
2015-11-22
只能在方法塊中對成員變量進(jìn)行修改
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;
? ? }
}
你把調(diào)用放到方法里面去,直接在類里面調(diào)用是不行的,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; ? ? ? ? ? ? ?//這里四個(gè)調(diào)用都報(bào)錯(cuò) ?(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.在二級包的該類的子類下面不能被調(diào)用 ? ??
? ??
*/ ? ?
? ? protected int b; ? ? ? ? //總結(jié):只要同包都能調(diào)用,并且區(qū)別默認(rèn)的是:它在其他包的子類中也能被調(diào)用
/* 3.在其他包的普通類下面不能調(diào)用 ?
?* 5.5.在二級包中的普通類下面不能被調(diào)用(其實(shí)二級包也算是其他包)
?* 6.在二級包的該類的子類下面不能被調(diào)用
? ??
*/ ? ?
? ? int c; ? ? ? ? ? ? ? ? //總結(jié):只要同包下都能調(diào)用(其中二級包不算同包!)
/* 3.在其他包的普通類下面不能被調(diào)用
?* 4.在其他包的該類的子類下不能被調(diào)用?
?* 5.5.在二級包中的普通類下面不能被調(diào)用(其實(shí)二級包也算是其他包)
?* 6.在二級包的該類的子類下面不能被調(diào)用
? ??
*/ ? ?
? ? private int d; ? ? ? ? //總結(jié):只有在本類中可以調(diào)用!
? ?/* 1.在同一個(gè)包下的其他類中就不能調(diào)用
? ? * 2.在同一個(gè)包下的子類中也不能調(diào)用(其實(shí)子類也算是同一個(gè)包下的類)
? ? * 3.在其他包的普通類下不能被調(diào)用
? ? * 4.在其他包的該類的子類下不能被調(diào)用
? ? * 5.在二級包中的普通類下面不能被調(diào)用(其實(shí)二級包也算是其他包)
? ? * 6.在二級包的該類的子類下面不能被調(diào)用
? ? */
? ??