/*此總結的主要內容是我在學習JAVA過程中,認爲需要記憶的知識點。並結合之前自己學習C++及javascript的相關知識,註明JAVA在一些情況下與這兩門語言的相同及不同之處。*/
(1)包
(2)權限修飾詞
同一個類 |
同一個包 |
不同包的子類 |
不同包的非子類 |
|
Private |
√ |
|||
Default |
√ |
√ |
||
Protected |
√ |
√ |
√ |
|
Public |
√ |
√ |
√ |
√ |
(3)類的訪問權限
package accessControl;
class Soup1{
private Soup1(){};
public static Soup1 makeSoup(){//靜態方法創建對象並返回,可以用來在返回引用之前做額外的工作。
return new Soup1();
}
}
class Soup2{
private Soup2(){}
private static Soup2 ps1=new Soup2();
public static Soup2 access(){//這種特定的模式被稱爲singleton(單例),因爲只能創建它的一個對象,只能通過靜態public方法訪問
return ps1;
}
public void f(){}
}
public class Lunch {
void testPrivate(){
//無法直接創建對象
//Soup1 soup =new Soup1();
}
void testStatic(){
Soup1 soup =Soup1.makeSoup();
}
void testSingleton(){
Soup2.access().f();
}
}