Java物件導向(下)

2021-07-02 07:30:13 字數 3533 閱讀 3229

1.抽象類

概念:當乙個類中沒有足夠的資訊去描述乙個具體事物時,那麼這個類就是抽象類。

注意:抽象類一般都是對概念類別的描述,不過這個概念下存在著n多具體的事物。

語法:

[訪問修飾符] abstract class 類名

/**

抽象類 應用示例

*///定義乙個圖形類

abstract class shape

//定義抽象方法

public abstract void area();

public abstract void zhouchang();

public void display()

}class chang extends shape

public void area()

public void zhouchang()

}public class test1

}

特點:

在抽象類中可以存在構造方法,但是抽象類不能直接建立物件。

抽象類中可以存在普通屬性和普通方法或者靜態方法。

抽象類中還可以存在抽象方法,抽象方法只有方法的宣告,沒有方法體,而且抽象方法不能是靜態的。

抽象方法的定義語法:

[訪問修飾符] abstract 返回值型別 方法名稱(引數列表);

抽象類中的抽象方法,需要有子類來實現;如果子類沒有實現父類中的抽象方法,則有子類的子類繼續實現。

如果乙個類中存在乙個抽象方法,那麼這個類一定是抽象類;但是抽象類中不一定有抽象方法。

抽象類中的構造方法是用來子類建立物件時,由jvm來呼叫建立父類的物件。

2.介面

介面就是對外提供了一系列功能的宣告,也就是說在介面中只有方法的宣告,沒有方法體。

特點:

介面可以實現多繼承。

用inte***ce關鍵字來宣告介面。

介面中不可以有構造方法。

介面中定義的變數都是常量,因為預設情況下介面中所有的變數都預設是public static final來修飾的

介面中所有的方法只能用public來修飾。

介面中定義的方法需要有類來實現。

語法:

[訪問修飾符] inte***ce 介面名

/**

介面 應用示例

*/inte***ce inter01

inte***ce inter02

inte***ce inter03 extends inter01,inter02

class impl implements inter03

public void test()

public void test2()

public void t()

}public class test2

}

用關鍵字 implements 實現介面。

如:class car implements runner 每個類只能有乙個超類,但可以實現多個介面。

如果實現多個介面,則用逗號隔開介面名稱

如下所示:

class car implements runner, constants乙個類實現了乙個介面,它必須實現介面中定義的所有方法,否則該類必須宣告為抽象類。介面可以繼承自其它的介面,並新增新的常量和方法。

介面支援多重繼承。

/**

*/inte***ce mobilephone

inte***ce camera

inte***ce cameraphone extends mobilephone,camera

/**類實現介面,這裡一定要注意,該類實現了哪個介面,就必須將這個介面中的所有方法具體化。

*/class nokiaphone implements cameraphone

public void receive()

public void sendmsg()

public void receivemsg()

public void takephoto()

}class motophone implements cameraphone

public void receive()

public void sendmsg()

public void receivemsg()

public void takephoto()

}class student

public void mycall()

}public class testinte***ce

}

3.static關鍵字

例項變數:只有建立了類的物件,才會為變數分配記憶體。

例項變數屬於物件,所以需要通過物件訪問。

static可以修飾變數,方法,靜態**塊。

/**

static 關鍵字

*/public class test3

public static void main(stringargs)

public static void display()

public void t()

}

①.static修飾的變數稱為靜態變數(類變數)。

靜態變數不屬於某個物件,而是屬於類,因為jvm在載入類時,就會為類中所有靜態的變數或者方法進行開闢相應的記憶體空間,從某種意義上來說類中被static修飾的**,只載入一次。

靜態變數一般用類名.變數名的方式進行訪問。

②.static修飾的方法稱為靜態方法(類方法).

靜態方法只能訪問靜態屬性或者靜態方法。

在非靜態方法中,可以訪問靜態方法也可以直接呼叫普通方法。

在靜態方法中,不能使用this和super關鍵字。

③.static修飾**塊稱為靜態**塊,語法:

static

static靜態**塊位於類中,任何方法的外面。

作用:就是用來初始化成員靜態變數的或者需要在類載入時進行初始化的內容。

Java 物件導向 物件和類 下

正課 方法的簽名 1 方法的過載 overload 1.發生在乙個類中,方法名相同,引數列表不同 2.編譯器在編譯時會根據簽名自動繫結呼叫方法 補充 1.乙個檔案中,可以包含多個類 2.public修飾類只能有乙個 3.public public class overloaddemo class a...

JAVA 物件導向

this關鍵字只能在方法內部使用,表示 呼叫方法的那個物件 的引用。this 用於建構函式之間進行相互呼叫。語句只能定義在建構函式的第一行。static 靜態 使用注意事項 1.靜態方法只能訪問靜態成員。非靜態方法可以訪問靜態成員。2.靜態方法中不可以定義this,super關鍵字。因為靜態優先於物...

JAVA 物件導向

定義類的格式 class student 例 public int addnumber int a,int b 注 方法名中的引數int a,int b為區域性變數 類方法中的一類特殊方法 構造方法。構造方法是當用類生成物件時,系統在生成物件的過程中利用的方法。注意 構造方法在生成物件的時候會被呼叫...