1. 程式人生 > >高級類修飾符

高級類修飾符

初始化 訪問 oid 數據屬性 args double col extend 參數

一 static

修飾屬性、方法、塊、內部類
static被稱為靜態,可以用來修飾類的屬性或者方法。
static屬性可以使用對象調用,也可以直接用類名調用。 例如:

public class ssss {
String name;
double salary;
static int count=1;
private int c=1;
public ssss(String name,double salary){
this.name=name;
this.salary=salary;
count++;
c++;
}
public static void main(String[] args){
ssss a1=new ssss("b1 ",3000);
ssss a2=new ssss("b2 ",6000);
System.out.println(a1.name+""+a1.salary+""+a1.count);
System.out.println(a2.name+""+a2.salary+""+a2.count);

System.out.println(a1.name+""+a1.salary+""+a1.c);
System.out.println(a2.name+""+a2.salary+""+a2.c);

}
}

也就是說,static修飾符是所修飾的變量是一個內存空間的值,而被private修飾的指的是每次初始化的值。
屬性可以使用static修飾,局部變量不可以。

二 final

用於聲明屬性,方法和類

屬性:定義就必須直接賦值或者在構造方法中進行賦值,並且後期都不能修改。

方法:定義必須有實現代碼,並且子類裏不可被覆蓋。

類:不能被定義為抽象類或是接口,不可被繼承。
final修飾屬性:
當final修飾屬性時,基本數據類型的屬性將成為常量,不能被修改

在方法參數前面加final關鍵字,為了防止數據在方法體中被修改。
三 繼承
繼承是指一個類的定義可以基於另外一個已經存在的類,即子類基於父類,從而實現父類代碼的重用,子類能吸收已有類的數據屬性和行為,並能擴展新的能力。
繼承的形式:
【訪問權限修飾符】【修飾符】子類名 extends 父類名{子類體}
繼承的作用:代碼復用
繼承中構造方法的調用
1.默認情況下,調用父類無參構造方法
2.可以在子類構造方法的第一行,使用super關鍵字調用父類任意一個構造方法
註意

:必須將調用父類構造方法的這條語句放在子類構造方法的第一條語句位置。
方法覆蓋的定義
子類可以重寫父類中某一個方法,稱為方法覆蓋,也稱方法重寫,是繼承中非常重要的知識點。如果子類需要修改從父類繼承到的方法的方法體,就可以使用方法覆蓋。
方法覆蓋的原則
同名
同參
同返回值
訪問權限不能縮小
四 super
與this的區別,this通常指代當前對象,super通常指代父類。
例如:

class aaa {
protected void sss(){
System.out.println("這是一只貓");
}
}
class aaa2 extends aaa{
public aaa2(){
super(); //調用父類的構造方法,而且放第一行,如果不寫,系統自動加
}
public void sss(){
System.out.println("這是一只大花貓");
super.sss(); //調用父類的方法
}
}

public class hhh {

public static void main(String[] args) {
aaa2 z = new aaa2();
z.sss();
}

}




高級類修飾符