1. OOP是什么
OOP:面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Oriented Programming方灾,OOP)
2. 面向?qū)ο蟮幕靖拍?/h1>
2.1 面向?qū)ο?/h2>
面向?qū)ο笫且环N基于對象概念的軟件開發(fā)方法建蹄,是目前軟件開發(fā)的主流方式
面向?qū)ο笥腥筇卣鳎悍庋b碌更、繼承裕偿、多態(tài)
2.2 對象
2.2.1 什么是對象
- 在面向?qū)ο蟮氖澜缰姓J(rèn)為萬事萬物皆對象,看得見痛单,摸得著的都是對象嘿棘。
- 對象不是一個(gè)概念,他代表一個(gè)具體的事物旭绒。
- 我們?nèi)粘I钪兴姷降拿恳患?strong>具體的的事物就是一個(gè)對象鸟妙。
例如:你現(xiàn)在正在看的這一篇文章就是一個(gè)對象,你家的那只貓就是一個(gè)對象挥吵,你吃的那個(gè)蘋果重父,就是一個(gè)對象。
2.2.2 對象有什么特點(diǎn)
在面向?qū)ο蟮氖澜缰泻鲂伲瑢ο髲膬蓚€(gè)方面去認(rèn)識(shí):
- 對象的狀態(tài):對象本身所具有的屬性房午,例如貓的名字、年齡丹允、毛色郭厌、品種。
- 對象的行為:對象本身所具有的功能雕蔽,例如貓有捉老鼠折柠、爬樹、吃魚等行為批狐。
2.3 類
2.3.1 什么是類
- 類是具有相同狀態(tài)和行為的一組對象的集合(統(tǒng)稱)
- 類就是代表多個(gè)的統(tǒng)稱扇售,不是一個(gè)具體的個(gè)體。
例如:文章是類贾陷,貓是類缘眶,蘋果是類,因?yàn)樗鼈儧]有指出具體的事物髓废,是一個(gè)統(tǒng)稱巷懈,所以稱為類。
2.3.1 類有什么特點(diǎn)
在編程世界中慌洪,用屬性表示對象的狀態(tài)顶燕,用方法表示對象的行為(功能)。
2.4 類與對象的關(guān)系
- 類是對象的模板冈爹,對象是類的具體實(shí)例涌攻。
- 類與對象的關(guān)系就如同摸具和用這個(gè)摸具制作出來的物品之間的關(guān)系。
- 一個(gè)類給出他全部對象的統(tǒng)一定義频伤,而它的每個(gè)對象則是符合這種定義的一個(gè)實(shí)體(也稱作實(shí)例)恳谎,因此類和對象的關(guān)系就是抽象和具體的關(guān)系。
3. 類定義
3.1 類的構(gòu)成
類由屬性和方法構(gòu)成。
3.2 類的定義
語法
[訪問修飾符] class 類名{ //訪問修飾符有 public因痛、private婚苹、默認(rèn)修飾符(不寫)、protect
//編寫屬性
//編寫方法
}
示例
public class Student {
//類的屬性(類的狀態(tài))
String name;
int score;
String no;
//類的方法(類的行為)
public void play(){
System.out.printf("我的名字是%s,我的成績是%d,我的學(xué)號(hào)是%s",name,score,no);
}
}
注意:
public 類必須和該類所在文件的文件名相同鸵膏;
如果不是public類膊升,那么類名和該類所在文件的文件名可以不同
定義類就是定義了一個(gè)新型數(shù)據(jù)類型,這個(gè)數(shù)據(jù)類型的名稱就是類名
3.2.1 類的屬性
對象所擁有的特征在類中表現(xiàn)為類的屬性谭企,屬性使用變量表示廓译。
語法
[訪問修飾符] 數(shù)據(jù)類型 屬性名; //訪問修飾符有 public、private债查、默認(rèn)修飾符(不寫)非区、protect
示例
//定義一個(gè)學(xué)生類
public class Student {
//類的屬性(類的狀態(tài))
String name; //定義學(xué)生的姓名
int score; //定義學(xué)生的成績
String no; //定義學(xué)生的學(xué)號(hào)
}
3.2.2 類的方法
語法
[訪問修飾符] 返回值類型 方法名(參數(shù)){
//方法體
};
示例
public class Student {
//類的方法(類的行為)
public void play(){
System.out.println("同學(xué)們正在操場玩耍...")
}
}
4 創(chuàng)建和使用對象
4.1 創(chuàng)建對象
類是一類事物的集合和抽象,代表著這類事物共有的屬性( 狀態(tài))和方法(行為)盹廷。一個(gè)對象稱為類的一個(gè)實(shí)例院仿,是類一次實(shí)例化的結(jié)果。例如 "松江" 就是一個(gè) "人" 類的具體對象速和。
語法
// new 就是實(shí)例化的過程歹垫,new也是分配內(nèi)存的意思
類名 對象名 = new 類名();
示例
Student s1 =new Student();
Student s2 =new Student();
內(nèi)存結(jié)構(gòu)
4.2 使用對象
對象要引用屬性和方法,需要使用成員運(yùn)算符 “.” 颠放。
語法
對象名.屬性名 //引用對象的屬性
對象名.方法名 //引用對象的方法
示例
Student s1 =new Student();
s1.name="haha";
s1.score=78;
Student s2 =new Student();
s2.name="yaya";
s2.score=98;
運(yùn)行結(jié)果:
我的名字是haha,我的成績是78,我的學(xué)號(hào)是null
我的名字是yaya,我的成績是98,我的學(xué)號(hào)是null