- 相關(guān)推薦
Java 對象和類(lèi)的介紹
Java作為一種面向對象語(yǔ)言。下面小編給大家介紹Java 對象和類(lèi),歡迎閱讀!
Java 對象和類(lèi)的介紹
對象:對象是類(lèi)的一個(gè)實(shí)例(對象不是找個(gè)女朋友),有狀態(tài)和行為。例如,一條狗是一個(gè)對象,它的狀態(tài)有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
類(lèi):類(lèi)是一個(gè)模板,它描述一類(lèi)對象的行為和狀態(tài)。
下圖中男孩女孩為類(lèi),而具體的每個(gè)人為該類(lèi)的對象:
Java中的對象
現在讓我們深入了解什么是對象?纯粗?chē)鎸?shí)的世界,會(huì )發(fā)現身邊有很多對象,車(chē),狗,人等等。所有這些對象都有自己的狀態(tài)和行為。
拿一條狗來(lái)舉例,它的狀態(tài)有:名字、品種、顏色,行為有:叫、搖尾巴和跑。
對比現實(shí)對象和軟件對象,它們之間十分相似。
軟件對象也有狀態(tài)和行為。軟件對象的狀態(tài)就是屬性,行為通過(guò)方法體現。
在軟件開(kāi)發(fā)中,方法操作對象內部狀態(tài)的改變,對象的相互調用也是通過(guò)方法來(lái)完成。
Java中的類(lèi)
類(lèi)可以看成是創(chuàng )建Java對象的模板。
通過(guò)下面一個(gè)簡(jiǎn)單的類(lèi)來(lái)理解下Java中類(lèi)的定義:
public class Dog{
String breed;
int age;
String color;
void barking(){
}
void hungry(){
}
void sleeping(){
}
}
一個(gè)類(lèi)可以包含以下類(lèi)型變量:
局部變量:在方法、構造方法或者語(yǔ)句塊中定義的變量被稱(chēng)為局部變量。變量聲明和初始化都是在方法中,方法結束后,變量就會(huì )自動(dòng)銷(xiāo)毀。
成員變量:成員變量是定義在類(lèi)中,方法體之外的變量。這種變量在創(chuàng )建對象的時(shí)候實(shí)例化。成員變量可以被類(lèi)中方法、構造方法和特定類(lèi)的語(yǔ)句塊訪(fǎng)問(wèn)。
類(lèi)變量:類(lèi)變量也聲明在類(lèi)中,方法體之外,但必須聲明為static類(lèi)型。
一個(gè)類(lèi)可以擁有多個(gè)方法,在上面的例子中:barking()、hungry()和sleeping()都是Dog類(lèi)的方法。
構造方法
每個(gè)類(lèi)都有構造方法。如果沒(méi)有顯式地為類(lèi)定義構造方法,Java編譯器將會(huì )為該類(lèi)提供一個(gè)默認構造方法。
在創(chuàng )建一個(gè)對象的時(shí)候,至少要調用一個(gè)構造方法。構造方法的名稱(chēng)必須與類(lèi)同名,一個(gè)類(lèi)可以有多個(gè)構造方法。
下面是一個(gè)構造方法示例:
public class Puppy{
public Puppy(){
}
public Puppy(String name){
// 這個(gè)構造器僅有一個(gè)參數:name
}
}
創(chuàng )建對象
對象是根據類(lèi)創(chuàng )建的。在Java中,使用關(guān)鍵字new來(lái)創(chuàng )建一個(gè)新的'對象。創(chuàng )建對象需要以下三步:
聲明:聲明一個(gè)對象,包括對象名稱(chēng)和對象類(lèi)型。
實(shí)例化:使用關(guān)鍵字new來(lái)創(chuàng )建一個(gè)對象。
初始化:使用new創(chuàng )建對象時(shí),會(huì )調用構造方法初始化對象。
下面是一個(gè)創(chuàng )建對象的例子:
public class Puppy{
public Puppy(String name){
//這個(gè)構造器僅有一個(gè)參數:name
System.out.println("小狗的名字是 : " + name );
}
public static void main(String []args){
// 下面的語(yǔ)句將創(chuàng )建一個(gè)Puppy對象
Puppy myPuppy = new Puppy( "tommy" );
}
}
編譯并運行上面的程序,會(huì )打印出下面的結果:
小狗的名字是 : tommy
訪(fǎng)問(wèn)實(shí)例變量和方法
通過(guò)已創(chuàng )建的對象來(lái)訪(fǎng)問(wèn)成員變量和成員方法,如下所示:
/* 實(shí)例化對象 */
ObjectReference = new Constructor();
/* 訪(fǎng)問(wèn)其中的變量 */
ObjectReference.variableName;
/* 訪(fǎng)問(wèn)類(lèi)中的方法 */
ObjectReference.MethodName();
實(shí)例
下面的例子展示如何訪(fǎng)問(wèn)實(shí)例變量和調用成員方法:
public class Puppy{
int puppyAge;
public Puppy(String name){
// 這個(gè)構造器僅有一個(gè)參數:name
System.out.println("小狗的名字是 : " + name );
}
public void setAge( int age ){
puppyAge = age;
}
public int getAge( ){
System.out.println("小狗的年齡為 : " + puppyAge );
return puppyAge;
}
public static void main(String []args){
/* 創(chuàng )建對象 */
Puppy myPuppy = new Puppy( "tommy" );
/* 通過(guò)方法來(lái)設定age */
myPuppy.setAge( 2 );
/* 調用另一個(gè)方法獲取age */
myPuppy.getAge( );
/*你也可以像下面這樣訪(fǎng)問(wèn)成員變量 */
System.out.println("變量值 : " + myPuppy.puppyAge );
}
}
編譯并運行上面的程序,產(chǎn)生如下結果:
小狗的名字是 : tommy
小狗的年齡為 : 2
變量值 : 2
【Java 對象和類(lèi)的介紹】相關(guān)文章:
Java對象和類(lèi)04-03
Java類(lèi)和對象的概念02-19
Java類(lèi)和對象的初始化順序05-05
Java中對象和引用的具體區別05-18
Java的面向對象05-16
java類(lèi)文件內容介紹08-07