天天看點

JAVA面向對象之對象和類

java是一種面向對象的程式設計語言,面向對象在整個java的學習中屬于重中之重,從這一篇部落格開始,将逐漸為大家介紹java面向對象的相關知識,這一偏将為大家介紹對象和類的概念以及如何定義類和建立對象。

一、對象和類的概念

1、對象

以一個人為例,對于人,我們可以從他所具有的特征和所具有的行為來進行分析。

特征:體重、身高、性别、年齡......

行為:吃飯、睡覺、說話......

上面的例子就是對現實世界中的具體事物進行的描述,這些具體的事務就是對像,比如一個人、一輛車。從以上的分析還可以看出,人類在對事物進行描述的時候大多從兩個方面,即從靜(特性、特征)和動(用途、行為)來展開。是以我們可以總結為:對象指具體的事物,具有靜态的特征和動态的行為或用途。

在java語言中,在對對象進行描述時,其靜态的特征稱為屬性,動态的行為或用途稱為方法。

2、類

上面提到對象是具體的事物,那麼,類就是對具體事物的一般特征進行描述。換句話說,類是具有相同屬性和行為的一組對象的集合,類也有屬性和行為。

對象是具體的一個實實在在的事物,類是從這些具體事物(對象)的原型。是這些事物一般特征的描述,是抽象出來的。

二、定義類和建立對象

1、類的聲明

java中類聲明的格式如下:

[類修飾符] class 類名 [extends 父類名稱] [implements 接口名稱清單] 

{

   變量定義及初始化;

   方法定義及方法體;

}

類修飾符:[public|abstract|final] 預設方式為frindly

public:類的通路控制符。java類具有兩種通路通路修飾符:public和default。public允許類具有完全開放的可見性,所有其他類都可以通路它,省略public,則為default,即隻有位于同一個包(本質上就是檔案夾)中的類可以通路該類。

abstract指明該類為一個抽象類,說明該類是一個定義不完全的類,需要被繼承,才能執行個體化建立對象。

final:表明該類為最終類,不能被繼承。

extends:表示繼承,如果沒有指定繼承關系,則自動從object類派生該類。

implements:表示實作接口。

2、類的成員

類的成員包括屬性(變量)和方法兩個部分,定義格式如下:

成員變量:

[變量修飾符] 變量資料類型 變量名;

變量修飾符可以為public、protected、private、static、final、transient、volatile。

成員變量可以是java的任意一種資料類型

成員方法:

[方法修飾符] 傳回類型 方法名稱(參數清單) [throws exception]

   ......

方法修飾符可以是public、protected、private、static、final、abstract、native、synchronized。

傳回類型可以是java任意資料類型,當一個方法不需要傳回值時,傳回類型為void。

參數的類型可以是java任意資料類型,根據資料類型的不同采用值傳遞或引用傳遞。

3、建立對象

想要建立對象,我們首先要抽象出類,比如我們要建立一個箱子對象,我們應該首先抽象出箱子類,箱子具有長度、寬度、高度等屬性,并且可以計算體積,是以我們可以這樣定義這個類:

在這個類中,類名為box,我們定義了三個屬性,分别為長、寬、高,且屬性的通路修飾為private,我們需要通過getter/setter方法對其進行讀取/指派,另外還有一個計算體積的方法。

要想建立新的對象,我們需要使用new關鍵字和想要建立對象的類名,如:

box box = new box();

等号左邊以類名box作為變量類型定義了一個變量box,來指向等号右邊通過new關鍵字建立的一個box類的執行個體對象,變量box就是對象的引用。注意:在new語句的類名後一定要加上(),box()被稱為構造方法,後面會進行講解。

如果要通路對象中的屬性或方法,可以使用.操作符,如:box.getv();