一、面向對(duì)象
1.面向對(duì)象是在程序中使用(yòng)對(duì)象來(lái)映射現實中的(de)事物(wù),對(duì)象的(de)關系來(lái)描述事物(wù)之間的(de)聯系。
2.面向對(duì)象的(de)特點:
封裝性:封裝是将類的(de)某些信息隐藏在類内部,不讓外部程序去訪問,需要通(tōng)過這(zhè)個(gè)類提供的(de)方法來(lái)實現對(duì)隐藏信息的(de)操作和(hé)訪問。封裝也(yě)是面向對(duì)象的(de)核心思想,把類的(de)屬性和(hé)行爲封裝起來(lái),不給外界知道具體的(de)細節。
繼承性:繼承是類與類的(de)一種關系,而不是對(duì)象在繼承。子類從父類繼承,子類中就擁有父類中定義的(de)所有成員(yuán),隻是類的(de)繼承,我們創建對(duì)象,對(duì)象與對(duì)象是毫無關系的(de)。滿足繼承是一種”is a”關系,凡是滿足”is a”關系的(de)類就可(kě)以擁有繼承的(de)關系,當A類是1個(gè)B類的(de)時(shí)候,那麽A類就可(kě)以從B類繼承,例如“貓”繼承“動物(wù)”,動物(wù)類是貓類的(de)父類或基類,貓類是動物(wù)類的(de)子類或派生類。
多(duō)态性:多(duō)态就是對(duì)象的(de)多(duō)種形态。在程序中可(kě)以出現重名現象,它指在一個(gè)類中定義的(de)方法和(hé)屬性被其他(tā)類繼承,它們就有不同的(de)數據類型或表現出不同的(de)行爲,使得(de)同一個(gè)屬性和(hé)方法在不同類有不同的(de)意義。
二、類的(de)定義
1.什(shén)麽是類?
物(wù)以類聚,人(rén)以群分(fēn)。類是對(duì)一群具有相同特征或行爲的(de)事物(wù)的(de)1個(gè)統稱。是抽象的(de)也(yě)不能直接使用(yòng)。如果非要使用(yòng)類的(de)話(huà)呢(ne)?隻能去找這(zhè)一類事物(wù)中的(de)一個(gè)具體存在,然後使用(yòng)這(zhè)個(gè)具體存在。
2.類中可(kě)以定義成員(yuán)變量和(hé)成員(yuán)方法,其中成員(yuán)變量用(yòng)來(lái)描述對(duì)象的(de)特征,也(yě)叫做(zuò)屬性。成員(yuán)方法用(yòng)來(lái)描述對(duì)象的(de)行爲,稱作方法。
3.如何定義一個(gè)類
class Person{
int age;//定義int類型變量age
//定義speak()方法
void speak(){
System.out.print("我今年"+age+"歲");
}
}
首先是定義了(le)一個(gè)Person類,Person是類名,age是成員(yuán)變量,speak()成員(yuán)方法。在成員(yuán)方法可(kě)以訪問成員(yuán)變量的(de)age。
4.定義在類中的(de)變量是成員(yuán)變量,定義在方法中的(de)變量局部變量。假設在某一個(gè)方法中定義局部變量跟成員(yuán)變量的(de)名是一樣的(de),這(zhè)時(shí)方法訪問的(de)是局部變量而不是成員(yuán)變量。
例如:
class Person{
int age=3;//成員(yuán)變量
//定義speak()方法
void speak(){
int age=10;//局部變量
System.out.print("我今年"+age+"歲");
}
}
public class p13 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p1=new Person();
p1.speak();
}
}
輸出的(de)結果是:
我今年10歲
三、對(duì)象的(de)創建和(hé)使用(yòng)
1.什(shén)麽是對(duì)象
對(duì)象是現實生活中的(de)一個(gè)個(gè)具體存在.。看得(de)見、摸的(de)著(zhe)。拿過來(lái)就可(kě)以直接使用(yòng)。
2.創建對(duì)象的(de)格式
類名 對(duì)象名稱=new 類名();
例如:
Person p=new Person();
上面代碼中”new Person()”是創建Person類的(de)一個(gè)實例對(duì)象,”Person p”是Person類的(de)變量p。“=”表示Person對(duì)象在内存中的(de)地址賦值給變量p。這(zhè)個(gè)變量p就有了(le)對(duì)象的(de)引用(yòng)。
3.創建對(duì)象後,可(kě)以通(tōng)過對(duì)象的(de)引用(yòng)來(lái)訪問對(duì)象的(de)所有成員(yuán)。
訪問對(duì)象成員(yuán)的(de)格式
對(duì)象引用(yòng).對(duì)象成員(yuán)
4.如何訪問對(duì)象成員(yuán)的(de)案例
class Person{
int age;//成員(yuán)變量
//定義speak()方法
void speak(){
System.out.println("我叫張三,今年"+age+"歲");
}
}
public class p13 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//創建兩個(gè)Person的(de)對(duì)象
Person p1=new Person();//創建第一個(gè)Person對(duì)象
p1.age=8;//age屬性賦值
p1.speak();//調用(yòng)對(duì)象的(de)方法
Person p2=new Person();//創建第二個(gè)Person對(duì)象
p2.speak();//調用(yòng)對(duì)象的(de)方法
}
}
輸出的(de)結果是:
我叫張三,今年8歲
我叫張三,今年0歲
四、總結
本文主要介紹了(le)面向對(duì)象概念,面向對(duì)象的(de)三個(gè)特點封裝性、繼承性、多(duō)态性。類的(de)定義和(hé)創建對(duì)象與使用(yòng)。詳細的(de)介紹了(le)怎麽去定義一個(gè)類,通(tōng)過案例來(lái)理(lǐ)解怎麽去定義的(de)。對(duì)象的(de)創建與使用(yòng)介紹了(le)使用(yòng)的(de)格式,通(tōng)過創建對(duì)象後,可(kě)以通(tōng)過對(duì)象的(de)引用(yòng)來(lái)訪問對(duì)象的(de)成員(yuán)。希望大(dà)家通(tōng)過本文的(de)學習(xí),對(duì)你有所幫助!