- 相關(guān)推薦
Java類和對象的概念
類是具有相同屬性和服務(wù)的一組對象的集合。它為屬于該類的所有對象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和服務(wù)兩個主要部分。下面小編為你介紹Java類和對象的概念,歡迎大家閱讀!更多相關(guān)信息請關(guān)注相關(guān)欄目!
Java是一門面向?qū)ο蟮木幊陶Z言,理解Java,首先要理解類與對象這兩個概念。
Java中的類可以看做C語言中結(jié)構(gòu)體的升級版。結(jié)構(gòu)體是一種構(gòu)造數(shù)據(jù)類型,可以包含不同的成員(變量),每個成員的數(shù)據(jù)類型可以不一樣;可以通過結(jié)構(gòu)體來定義結(jié)構(gòu)體變量,每個變量擁有相同的性質(zhì)。例如:
#include
運行結(jié)果:
小明的年齡是 15,成績是 92.500000
Java中的類也是一種構(gòu)造數(shù)據(jù)類型,但是進(jìn)行了一些擴(kuò)展,類的成員不但可以是變量,還可以是函數(shù);通過類定義出來的變量也有特定的稱呼,叫做“對象”。例如:
public class Demo {public static void main(String[] args){// 定義類Studentclass Student{ // 通過class關(guān)鍵字類定義類// 類包含的變量String name;int age;float score;// 類包含的函數(shù)void say(){System.out.println( name + "的年齡是 " + age + ",成績是 " + score );}}// 通過類來定義變量,即創(chuàng)建對象Student stu1 = new Student(); // 必須使用new關(guān)鍵字// 操作類的成員stu1.name = "小明";stu1.age = 15;stu1.score = 92.5f;stu1.say();}}
運行結(jié)果:
小明的年齡是 15,成績是 92.5
在C語言中,通過結(jié)構(gòu)體名稱就可以完成結(jié)構(gòu)體變量的定義,并分配內(nèi)存空間;但是在Java中,僅僅通過類來定義變量不會分配內(nèi)存空間,必須使用new關(guān)鍵字來完成內(nèi)存空間的分配。
可以將類比喻成圖紙,對象比喻成零件,圖紙說明了零件的參數(shù)及其承擔(dān)的任務(wù);一張圖紙可以生產(chǎn)出具有相同性質(zhì)的零件,不同圖紙可以生產(chǎn)不同類型的零件。
在Java中,使用new關(guān)鍵字,就可以通過類來創(chuàng)建對象,即將圖紙生產(chǎn)成零件,這個過程叫做類的實例化,因此也稱對象是類的一個實例。
注意:類只是一張圖紙,起到說明的作用,不占用內(nèi)存空間;對象才是具體的零件,要有地方來存放,才會占用內(nèi)存空間。
類所包含的變量和函數(shù)都有特定的稱呼,變量被稱為屬性(通常也稱成員變量),函數(shù)被稱為方法,屬性和方法統(tǒng)稱為類的成員。
面向?qū)ο缶幊?Object Oriented Programming, OOP)
類是一個通用的概念,Java、C++、C#、PHP等很多編程語言中都有類,都可以通過類創(chuàng)建對象?梢詫㈩惪醋鍪墙Y(jié)構(gòu)體的升級版,C語言的晚輩們看到了C語言的不足,嘗試加以改善,繼承了結(jié)構(gòu)體的思想,并進(jìn)行了升級,讓程序員在開發(fā)或擴(kuò)展大中型項目時更加容易。
因為Java、C++等語言都支持類和對象,所以使用這些語言編寫程序也被稱為面向?qū)ο缶幊蹋@些語言也被稱為面向?qū)ο蟮木幊陶Z言。C語言因為不支持類和對象的概念,被稱為面向過程的編程語言。
實際上,面向?qū)ο笾皇敲嫦蜻^程的升級。
在C語言中,可以將完成某個功能的重復(fù)使用的代碼塊定義為函數(shù),將具有一類功能的函數(shù)聲明在一個頭文件中,不同類型的函數(shù)聲明在不同的頭文件,以便對函數(shù)進(jìn)行更好的管理,方便編寫和調(diào)用。
在Java中,可以將完成某個功能的代碼塊定義為方法,將具有相似功能的方法定義在一個類中,也就是定義在一個源文件中(因為一個源文件只能包含一個公共的類),多個源文件可以位于一個文件夾,這個文件夾有特定的稱呼,叫做包。
圖1 C語言中項目的組織結(jié)構(gòu)
圖2 Java中項目的組織結(jié)構(gòu)
面向?qū)ο缶幊淘谲浖䦂?zhí)行效率上絕對沒有任何優(yōu)勢,它的主要目的是方便程序員組織和管理代碼,快速梳理編程思路,帶來編程思想上的革新。
【Java類和對象的概念】相關(guān)文章:
Java對象和類08-27
Java 對象和類的介紹07-14
Java類和對象的初始化順序09-13
java類與對象的相關(guān)知識10-02
抽象類java的概念理解09-06
Java面向?qū)ο蟪绦蛟O(shè)計的基本概念09-30
Java中對象和引用的具體區(qū)別05-18
理解java和python類變量10-06