一:權限修飾符
訪問權限 類 包 子類 其他包
public ∨ ∨ ∨ ∨
protect ∨ ∨ ∨ ×
default ∨ ∨ × ×
private ∨ × × ×
public: Java語言中訪問限制最寬的修飾符,一般稱之爲“公共的”。被其修飾的類、屬性以及方法不僅可以跨類訪問,而且允許跨包(package)訪問。
protect: 介於public 和 private 之間的一種訪問修飾符,一般稱之爲“保護形”。被其修飾的類、屬性以及方法只能被類本身的方法及子類訪問,即使子類在不同的包中也可以訪問。
default: 這個訪問權限可能是很多人容易所忽視的,即不寫任何關鍵字。默認權限(同包權限)即:包內可訪問,包外不可訪問,不管是子類還是沒有繼承關係的類。
private: 只能在當前類中使用,外部不能訪問。
二:static
static關鍵字的特點
a:隨着類的加載而加載
b:優先於對象存在
c:被類的所有對象共享
public class Student {
public String name;
public static int num;
public static void show() {
System.out.println("這是一個靜態的show()方法");
}
public void test() {
System.out.println(name);
System.out.println(num);
}
public static void show2() {
System.out.println(num);
// System.out.println(name);
}
public void test2() {
Student.show();
this.show();
this.test();
}
public static void test3() {
Student.show();
show();
//test();
}
}
public class MyTest {
public static void main(String[] args) {
Student.num=100;
Student student = new Student();
System.out.println(student.num);
System.out.println(Student.num);//推薦使用類名調用
student.show();
Student.show();//靜態方法,使用類名直接可以調用
}
}
運行結果:
100
100
這是一個靜態的show()方法
這是一個靜態的show()方法
註釋:
靜態的方法,只能訪問靜態的成員變量,非靜態的成員變量訪問不到,因爲非靜態的成員變量是對象創建完成之後纔有,而靜態的是隨着類的加載就存在了,先存在訪問不到後存在的
而非靜態的既可以訪問靜態的也可以訪問靜態的。
靜態方法裏面不能出現this,this代表是本類對象,對象也是後來才存在的
靜態方法建議使用類名來調用。
三.this,super
this表本類的一個引用,誰調用就代表誰
super:可以看作是父類的存儲空間的標識
**this和super的使用
a:調用成員變量
this.成員變量 調用本類的成員變量
super.成員變量 調用父類的成員變量
b:調用構造方法
this(...) 調用本類的構造方法
super(...) 調用父類的構造方法
c:調用成員方法
this.成員方法 調用本類的成員方法
super.成員方法 調用父類的成員方法