舉例:寫乙個程式,實現如下功能:
一群寵物,寵物有各種型別,如貓、狗、企鵝等
讓這群寵物,按照各自的能力不同,進行各種比賽(如爬樹、游泳、跳水);擴充套件性需求: 游泳比賽游泳池的引數、飛盤的大小和重量等
1.首先從裡面抽象出名詞性的概念(需求分析,抽取概念模型)
寵物、貓、狗、企鵝、比賽、能力、寵物型別
2. 把名詞抽象成相應的class,或class的屬性
3.提取動詞 -------------------- 把這些動詞,抽象成物件的行為
爬樹、游泳、跳水
類和物件的關係
類是用於描述同一類的物件的乙個抽象的概念,類中定義了這一類物件所具有的靜態屬性和動態屬性下面看一段**類可以看成一類物件的模板,物件可以看成該類的乙個具體例項。
package com.chen.biz;
/** * 構建了乙個寵物類
* *@author 陳家小哥
* */
public
class
pet
/*** 方法
* 寵物都可以玩遊戲
*@param pet
*/public
void
playgame(pet pet)
}
建構函式:
建立乙個物件,必須呼叫它的建構函式。當乙個類中沒有建構函式時,會自動生成乙個空的建構函式。 建構函式的作用:常量:永遠不會改變(static final)給成員變數進行初始化。如果沒有給成員變數初始化,系統會分配預設值給這些成員變數。
編譯期常量(static final)—————————在程式編譯的時候,所有呼叫常量的位置,都被常量代表的值所替換 , 最大的好處是節省記憶體
程式執行期常量(final):一次賦值之後,永遠不能改變
常量的命名一定要大寫 ,如名字較長,用下劃線進行間隔 ***_male
變數
1.區域性變數:通過引數傳入或者在方法中定義
public
void
play(string name)
區域性變數的作用域是該變數所在的{} 。
區域性變數的生命期:
基本型別:超出區域性變數定義的{},就會被標識為無效,等待gc來**。
引用型別:超出區域性變數定義的{},會引用計數-1,如果引用計數為0,就會被gc下次掃瞄時**。
2.成員變數(物件變數)
成員變數是定義咋方法外的變數。
public
class
pet
}
成員變數的作用域:就是所在class內的所有方法
成員變數的生命期:與它所在的物件的生命期一致
在沒有static靜態變數的情況下程式執行順序如下:
1.系統給屬性賦預設值
2.使用者在成員變數級直接賦預設值
3.在建構函式中對成員變數進行初始化。
static變數:
1.稱為類變數,它是所有物件共享的記憶體;
2.不需要類的例項,可以直接通過類的名字呼叫。
3.作用域類似於全域性變數
4.在第一次呼叫這個變數時,分配記憶體。
下面是幾個小例子:
public
class
test
}
ublic class test
}
public
class
test
}
public
class
test
package com.chen.test;
/** * 說出輸出順序
*@author 陳家小哥
* */
public
class
test
extends
a
public
test()
public
static
void
main(string args)
}class a
}輸出結果:
5555
1111
5555
2222
3333
7777
解釋:當類被載入時,先初始化靜態的變數,輸出5555和1111,然後呼叫父類的建構函式,輸出5555,然後輸出2222,最後呼叫子類的建構函式,輸出子類的成員變數。 java物件導向程式設計
抽象及封裝 簡述抽象和封裝 1 為什麼使用物件導向?現實世界就是 物件導向的 世間萬物皆物件,物件導向就是採用 現實模擬 的方法設計和開發程式。2 物件導向設計的過程就是抽象的過程,分一下3步 1 發現類 2 發現類的屬性 3 發現類的方法 3 類圖 this通常指當前物件的引用,它可以呼叫當前物件...
java物件導向程式設計
物件導向程式設計 object oriented programming 簡稱oop 什麼是物件導向程式設計 世界萬物皆物件,一切都是物件!1,類 是對一類事物的抽象描述,注意 在程式裡面定義好乙個類以後,並不能真正的執行,如果要使類發揮效果執行起來,必須建立物件 類包含屬性和方法 構造方法 是在建...
java物件導向的程式設計
1 練習題 類的成員變數 猜數字遊戲 乙個類a 有乙個成員變數 v,有乙個初值 100。定義有乙個類,對 a類的成員變數 v進行猜。如果大了則提示大了,小了則提示小了。等於則提示猜測成功。package lei public class a void speedup this.speed speed...