當前位置:才華齋>計算機>java語言>

Java類和物件的概念

java語言 閱讀(2.07W)

類是具有相同屬性和服務的一組物件的集合。它為屬於該類的所有物件提供了統一的抽象描述,其內部包括屬性和服務兩個主要部分。下面小編為你介紹Java類和物件的概念,歡迎大家閱讀!更多相關資訊請關注相關欄目!

Java類和物件的概念

Java是一門面向物件的程式語言,理解Java,首先要理解類與物件這兩個概念。

Java中的類可以看做C語言中結構體的升級版。結構體是一種構造資料型別,可以包含不同的成員(變數),每個成員的資料型別可以不一樣;可以通過結構體來定義結構體變數,每個變數擁有相同的性質。例如:

#includeint main(){// 定義結構體 Studentstruct Student{// 結構體包含的變數char *name;int age;float score;};// 通過結構體來定義變數struct Student stu1;// 操作結構體的成員 = "小明"; = 15;e = 92.5;printf("%s的年齡是 %d,成績是 %f", , , e);return 0;}

執行結果:

小明的年齡是 15,成績是 92.500000

Java中的類也是一種構造資料型別,但是進行了一些擴充套件,類的成員不但可以是變數,還可以是函式;通過類定義出來的變數也有特定的稱呼,叫做“物件”。例如:

public class Demo {public static void main(String[] args){// 定義類Studentclass Student{ // 通過class關鍵字類定義類// 類包含的變數String name;int age;float score;// 類包含的函式void say(){tln( name + "的年齡是 " + age + ",成績是 " + score );}}// 通過類來定義變數,即建立物件Student stu1 = new Student(); // 必須使用new關鍵字// 操作類的成員 = "小明"; = 15;e = 92.5f;();}}

執行結果:

  小明的年齡是 15,成績是 92.5

在C語言中,通過結構體名稱就可以完成結構體變數的定義,並分配記憶體空間;但是在Java中,僅僅通過類來定義變數不會分配記憶體空間,必須使用new關鍵字來完成記憶體空間的分配。

可以將類比喻成圖紙,物件比喻成零件,圖紙說明了零件的引數及其承擔的任務;一張圖紙可以生產出具有相同性質的.零件,不同圖紙可以生產不同型別的零件。

在Java中,使用new關鍵字,就可以通過類來建立物件,即將圖紙生產成零件,這個過程叫做類的例項化,因此也稱物件是類的一個例項。

注意:類只是一張圖紙,起到說明的作用,不佔用記憶體空間;物件才是具體的零件,要有地方來存放,才會佔用記憶體空間。

類所包含的變數和函式都有特定的稱呼,變數被稱為屬性(通常也稱成員變數),函式被稱為方法,屬性和方法統稱為類的成員。

面向物件程式設計(Object Oriented Programming, OOP)

類是一個通用的概念,Java、C++、C#、PHP等很多程式語言中都有類,都可以通過類建立物件。可以將類看做是結構體的升級版,C語言的晚輩們看到了C語言的不足,嘗試加以改善,繼承了結構體的思想,並進行了升級,讓程式設計師在開發或擴充套件大中型專案時更加容易。

因為Java、C++等語言都支援類和物件,所以使用這些語言編寫程式也被稱為面向物件程式設計,這些語言也被稱為面向物件的程式語言。C語言因為不支援類和物件的概念,被稱為面向過程的程式語言。

實際上,面向物件只是面向過程的升級。

在C語言中,可以將完成某個功能的重複使用的程式碼塊定義為函式,將具有一類功能的函式宣告在一個頭檔案中,不同型別的函式宣告在不同的標頭檔案,以便對函式進行更好的管理,方便編寫和呼叫。

在Java中,可以將完成某個功能的程式碼塊定義為方法,將具有相似功能的方法定義在一個類中,也就是定義在一個原始檔中(因為一個原始檔只能包含一個公共的類),多個原始檔可以位於一個資料夾,這個資料夾有特定的稱呼,叫做包。

圖1 C語言中專案的組織結構

圖2 Java中專案的組織結構

面向物件程式設計在軟體執行效率上絕對沒有任何優勢,它的主要目的是方便程式設計師組織和管理程式碼,快速梳理程式設計思路,帶來程式設計思想上的革新。