1. 程式人生 > 實用技巧 >許可權修飾符和兩個關鍵字

許可權修飾符和兩個關鍵字

修飾符

許可權修飾符

修飾符 同一個類中 同一個包中子類無關類 不同包中的子類 不同包中的無關類
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(){

    }
}