Java中權限修飾符是指定義類、方法、變量在不同訪問級別下的可見性。Java中一共有4個權限修飾符,即public、protected、默認和private,其中默認修飾符不需要顯式聲明。
public:最為寬松的權限修飾符,它可以被所有其他類所訪問,無論是不是在同一個包中。
public class Person { public String name; public int age; }
protected:只能被同一個包中的類或者該類的子類所訪問。
protected class Animal { protected int weight; }
默認:也叫包權限,只能在同一個包中被訪問,不能被其他包中的類訪問。
class Car { int price; }
private:最為嚴格的權限修飾符,只能在該類內部被訪問,不能被其他類訪問,即使是同一個包也不行。
class Phone { private String brand; }
變量作用域是指變量的有效范圍,即在哪些方法或者代碼塊中可以訪問該變量。
class Person { String name; // 實例變量,作用域是整個類 int age; public void setName(String name) { this.name = name; // 方法的形參 String address = ""; // 方法中的局部變量 for(int i=0; i<10; i++) { // for循環塊中的局部變量 int j = 0; } // address和j在該方法外部不能訪問 } }
在Java中,變量的作用域可以分為以下幾種:
- 實例變量:定義在類中的變量,在整個類中可以訪問。
- 靜態變量(類變量):用static關鍵字聲明的變量,在整個類中共享同一份內存。
- 形參:用于接收方法傳遞過來的值,只能在該方法內部訪問。
- 局部變量:定義在方法、for循環、if條件語句等代碼塊中的變量,只能在該代碼塊內部訪問。