許可權修飾符和兩個關鍵字
阿新 • • 發佈:2020-12-09
修飾符
許可權修飾符
修飾符 | 同一個類中 | 同一個包中子類無關類 | 不同包中的子類 | 不同包中的無關類 |
---|---|---|---|---|
private | 可以訪問 | |||
預設 | 可以訪問 | 可以訪問 | ||
protected | 可以訪問 | 可以訪問 | 可以訪問 | |
public | 可以訪問 | 可以訪問 | 可以訪問 | 可以訪問 |
final關鍵字
final修飾區域性變數
變數是基本型別:final修飾指的是基本型別的資料值不能發生改變
變數是引用型別:final修飾指的是引用型別的地址值不發生改變,但是地址裡面的內容是可以發生改變的
package com.itheima_05; public class FinalDemo { public static void main(String[] args) { //final修飾基本型別變數 final int age = 20; //age = 100; 不可修改 System.out.println(age); //final修飾引用型別變數 final Student s = new Student(); //s = new Student(); 不可修改 s.age = 20; //可修改 System.out.println(s.age); } }
static
static關鍵字是靜態的意思,可以修飾成員方法,成員變數
static修飾的特點
- 被類的所有物件所共享(也是我們判斷是否使用靜態關鍵字的條件)
- 可以通過類名呼叫,也可以使用物件名呼叫,但是推薦使用類名呼叫
static訪問特點
非靜態的成員方法
- 能訪問靜態的成員變數
- 能訪問非靜態的成員變數
- 能訪問靜態的成員方法
- 能訪問非靜態的成員方法
靜態的成員方法
- 能訪問靜態的成員變數
- 能訪問靜態的成員方法
總之,靜態成員方法只能訪問靜態成員!
package com.itheima_05; //static訪問特點 public class Student { //非靜態成員變數 private String name = "藍頭髮妹妹"; //靜態成員變數 private static String university = "燕山大學"; //非靜態成員方法 public void show1(){ System.out.println(name); System.out.println(university); show2(); show3(); show4(); } public void show2(){ } //靜態成員方法 public static void show3(){ //System.out.println(name); 報錯 System.out.println(university); //show2(); 報錯 show4(); } public static void show4(){ } }