Java 關鍵字總結
private 關鍵字
private ,私有的,一種訪問權限修飾符,用來修飾類的成員(包括成員變量和成員方法)
被修飾的成員只能在本類中訪問
用法:
private 數據類型 變量名; private 返回值類型 方法名(參數列表){}
public:公共的,訪問權限修飾符,用來修飾類、成員變量、成員方法等,被修飾的內容可以在 任意類 中訪問
default (包訪問級別): 類的成員變量和方法什么修飾符都沒有,又叫包修飾符,只有類本身成員和當前包下類的成員可以訪問
protected (子類訪問級別): 用 protected 修飾的成員變量和方法能被該類的成員以及其子類成員訪問,還可以被同一個包中的其他類的成員訪問
案例:
A:給成員變量添加 private 修飾后,測試類中將不能直接訪問
B:由于 private 的特性,需要在 Student 類中添加訪問該屬性的方法,供其它類調用
C:屬性的操作一般都是取值和賦值,所以添加對應的公共方法: getXxx() 、setXxx(參數)
D:在測試類中通過 getXxx() 和 setXxx(參數) 方法來實現屬性的訪問
public static void main(String[] args) { Student2 stu = new Student2(); stu.setAge(20); stu.setName("twe"); System.out.println(stu.getAge()); System.out.println(stu.getName()); stu.study(); }
this 關鍵字
this,表示本類對象的引用,本質是一個對象
每一個普通方法都有一個 this,誰調用該方法,this 就指向誰
用法:
this.屬性名; this.方法名(參數);
案例:
package cn.itcast.demo; public class Student2 { private String name = "one"; private int age = 1; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public String getName() { return this.name; } public int getAge() { return this.age; } public void study() { System.out.println(this.name + " is studying "); } }
final 關鍵字
final 用于修飾類、方法和變量
修飾類:
表示該類不能被繼承
例如,String、System
修飾方法:
表示該方法不能被重寫,不能與 abstract 共存
修飾變量:
表示最終變量,即 常量,只能賦值一次;
不建議修飾引用類型數據,因為,對于引用數據類型,即使加了 final,仍然可以通過引用修改對象的內部數據,意義不大
static 關鍵字
修飾類的成員:
成員變量:類變量
成員方法:類方法
被修飾成員的調用方式:
類名.成員變量名; 類名.成員方法名(參數);
static 修飾成員變量
被本類所有對象共享
隨意修改靜態變量的值是有風險的,為了降低風險,可以同時用 final 關鍵字修飾,即公有靜態常量(注意命名的變化):
public final static 變量類型 變量名 = 變量值;
static 修飾成員方法
靜態方法:
靜態方法中沒有對象 this,所以不能訪問非靜態成員
使用場景:
只需要訪問靜態成員,不需要訪問對象狀態,所需參數都由參數列表顯式提供
volatile 關鍵字
volatile 修飾的成員變量在每次被線程訪問時,都強制從共享內存中重新讀取該成員變量的值。
而且,當成員變量發生變化時,會強制線程將變化值回寫到共享內存。這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值。
一個 volatile 對象引用可能是 null
public class MyRunnable implements Runnable { private volatile boolean active; public void run() { active = true; while (active) { // 第一行 // 代碼 } } public void stop() { active = false; // 第二行 } }
通常情況下,在一個線程調用 run() 方法(在 Runnable 開啟的線程),在另一個線程調用 stop() 方法。 如果第一行中緩沖區的 active 值被使用,那么在第二行的 active 值為 false 時循環不會停止。
但是以上代碼中我們使用了 volatile 修飾 active,所以該循環會停止;
volatile 修飾后,active 一旦發生變化,會被所有線程知道
synchronized 修飾符
synchronized 關鍵字聲明的方法同一時間只能被一個線程訪問,用于保證線程安全
synchronized 修飾符可以應用于四個訪問修飾符
public synchronized void showDetails(){ ....... }
Java
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。