定義規則前,我這裡約定有三個類,乙個是base類,乙個是base類的子類sub類,乙個是sub類的子類subsub類,另乙個是other類且與base、sub、subsub沒有繼承關係,並假設base中有protected方法與屬性,都叫yyy吧。
protected方法與屬性可訪問的地方有三個:
1.在自己的類base中:上面的「*** x = new ***(); x.yyy;」與「this.yyy」兩種訪問形式都可以訪問的到自己定義的portected方法或屬性;
2.二是子類sub、subsub中,這要分三種訪問方式:
3.在其他類other中:此時只支援外部訪問形式,不過到底是要求other與base同包還是要求other與sub同包,則要依你訪問方式而定了:
package pk1.a;
public
class
base
}
package pk1.a;
import pk1.b.sub;
public
class
subsub
extends
sub
}
package pk1.b;
import pk1.a.base;
public
class
subextends
base
protected
void
protect()
void f()
}
package pk1.b;
public
class
subsub
extends
sub
}
package pk1.c;
import pk1.a.base;
import pk1.b.sub;
public
class
subsub
extends
sub
}
package pk2.a;
public
class
base
}
package pk2.a;
import pk2.b.sub;
public
class
other
}
package pk2.b;
import pk2.a.base;
public
class
other
}
package pk2.b;
import pk2.a.base;
public
class
subextends
base {}
package pk3.a;
import pk3.b.sub;
public
class
base
static
protected
int i_s = 1;
static
protected
void
protect_s()
void f()
}
package pk3.a;
import pk3.b.sub;
public
class
other
void f()
}
package pk3.b;
import pk3.a.base;
public
class
other
}
package pk3.b;
import pk3.a.base;
public
class
subextends
base
static
protected
int i_s = 2;
void f()
}
package a;
public
class
a void g() {}
private
void
p(a a) {}
private
void
m(a a)
public
static
void
main(string args)
}
package b;
import a.a;
public
class
bextends
a private
void
p() {}
public
void
call1(b b)
public
void
call12(a a)
public
static
void
main(string args)
}
訪問許可權控制(java程式設計思想第六章)
現在還是通過解決三個問題來說明這個問題的答案。訪問許可權是什麼?為什麼要引入訪問許可權控制?怎樣進行許可權控制?1.訪問許可權是什麼?訪問許可權控制是指明哪些是可用的,哪些是不可以用的,通過這種手段來到達程式正確執行。2.為什麼要引入訪問許可權控制?這個問題的答案和第乙個很像,1.使用者只能觸碰到他...
第六章筆記
頂層const與底層const的區別 頂層const是指標物件本身是乙個常量,而底層const是指標所指的物件是乙個常量,理解起來就相當於前者是直接,後者是間接。宣告函式可以多次,但是每個形參只能用實參預設初始化一次,即後續宣告只可以為未預設初始化的形參新增預設實參,而且其形參右側的所有形參必須都有...
程式設計第六章總結
一 主要內容摘要 1 for語句 for 表示式1 表示式2 表示式3 迴圈體語句 用途 在迴圈頂部進行迴圈條件測試,如果迴圈條件第一次迴圈就為假,則迴圈體一次也不執行,即用於實現當型迴圈控制結構。適用於迴圈次數已知 技術控制的迴圈。例 輸出1 100之間所有偶數 include using nam...