final
被final聲明的屬性其值通常是不可修改的,所以只有get方法,沒有set方法。并且變量要大寫,如下:
private final String COUNTRY="中國";
- 使用final聲明的屬性為常量,常量不可修改。
- final聲明的類不能被繼承。
- final聲明的方法不能被子類重寫。
static
static聲明的屬性為全局屬性,多個對象共享同一個內存空間。
static聲明的變量為靜態(tài)變量,聲明的方法為靜態(tài)方法,靜態(tài)變量和靜態(tài)方法都是被該類所有對象所共享的。
static變量和static方法的調用:直接用類名調用,類名.變量名/類名.方法名,如
public class Person {
private static String name="wang";
}
Person.name;
注意:在靜態(tài)方法中不能訪問非靜態(tài)變量和非靜態(tài)方法,但是在非靜態(tài)方法中可以訪問靜態(tài)變量和靜態(tài)方法。
包
是在使用多個類或接口時,為了避免名稱重復而采用的一種措施,類似于操作系統(tǒng)中的文件目錄。
目的:
- 避免重名沖突。
- 實現訪問權限控制。
聲明方式:package 包名.子包名 .子子包名;包名必須采用小寫英文字母。
包的導入
如果要在一個類中導入另一個包中的類,需用到import,例如
package testone;
import com.wang.Person;
public class Test {
public static void main(String[] args) {
Person p=new Person();
}
}
表示在包testone的類Test中導入包com.wang中的類Person。
包的訪問權限
-private:可以定義方法、屬性,但都不能被類的外部看到
-default:可以在本包中的任意地方訪問
-protected:保護,不同包的非子類不可以訪問
-public:公共的,都可以訪問,不受任何的限制
| 范圍 | private | default | protected | public |
|---|---|---|---|---|
| 同一類 | 可以 | 可以 | 可以 | 可以 |
| 同一包中的類 | 可以 | 可以 | 可以 | |
| 不同包的子類 | 可以 | 可以 | ||
| 其它包中的類 | 可以 |