1.面向對象
優點:耦合性低,擴展性強,組件複用性強。
缺點:前期投入成本較高,需要進行獨立體的抽取,大量的系統設計。
面向過程:
優點:對於業務邏輯比較簡單的程序,可以達到快速開發,前期投入成本低。
缺點:很難解決非常複雜的業務邏輯,耦合性高,造成擴展性差,沒有獨立提的概念,無法達到組件複用。
- 面向對象的三大特徵:
封裝,繼承,多態。
採用面向對象的方式開發一個軟件,生命週期當中,基於面向對象分爲三個階段:
面向對象的分析:OOA
面向對象的設計:OOD
面向對象的編程:OOP
什麼是類?
現實世界當中不存在,是一個模板,是一個概念,是人類大腦思考抽象的結果,將具有共同特性的對象抽象出來的模板,這個模板叫做類。
什麼是對象?
對象是實際存在的個體,現實世界當中實際存在。是類的一個實體。
軟件開發過程:
在現實世界中,觀察對象,將具有相同特徵的對象,通過JAVA語言,定義一個類,即模板。然後通過類就可以創建對象,有了對象之後,可以讓對象直接協作起來形成一個系統。 - 類的實例化爲對象。
- 對象抽象化爲類。
重點:類描述的是對象的共同特徵,屬性和方法,在訪問其對象的時候,必須先創建對象,通過對象去訪問這個特徵。因爲屬性和方法對應某個對象之後,值不同(屬性),打籃球的是否能灌籃不同(方法),但他們都有身高,都會打籃球。
2. 類的定義
結構:
[修飾符列表] class 類名{
屬性:
方法:
}
引用數據類型:String.class(sun提供)
Student.class 自定義
類是引用數據類型。跟基本數據類型區分開來。
3.對象的創建和使用
- 成員變量(實例變量)需通過創建對象去訪問,當創建對象後,變量的內存空間纔會創建。
- 實例化對象語法:new 類名();
Student s = new Student();
s爲局部變量(s在棧內存中)s爲引用,是對象在堆內存的地址,所以s不是對象。 - 什麼是對象?
new運算符在堆內存中開闢的內存空間稱爲對象。 - 什麼是引用?
引用是一個變量,只不過這個變量中保存了另一個java對象的內存地址。
注意:
*java語言當中,程序員不能直接操作堆內存,java屏蔽了指針,不像c語言。
*在java中,只能通過“引用”‘去訪問堆內存當中對象內部實例變量。 - new是java運算符
- new運算符的作用是創建對象,在JVM堆內存當中開闢新的內存空間。
- 方法區內存:在類加載的時候,class字節碼代碼片段被加載到該內存空間中。
- 棧內存:方法代碼執行的時候,會給該方法分配棧內存空間。
- 堆內存:new的對象在堆內存中存儲。
讀取數據
語法:引用.變量名(很像c語言的結構體)。
- 局部變量在棧內存中存儲。
- 成員變量中的實例變量在堆內存的java對象內部存儲。實例變量是一個對象一份。
- 對象中的實例變量只有通過對象才能訪問,不能直接通過“類名”訪問。
- 類爲引用數據類型,可以聲明變量,故自定義的類可以聲明變量。如String即爲引用數據類型,其爲sun公司定的。
public class Adress{
String city;
String town;
}
public class user{
int age;
String name;
Adress addr;
}
public class firstOO{
user u = new user();
u.age = 10; - u.addr = new Address();//等價於Address a= new Address();u.addr=a;
//訪問城市
u.addr.city = “Shanghai”; - }
u.add是一個引用。其保存了對象Address的地址。
引用時一個變量,變量包括局部變量和成員變量。