面向對象程式設計的概念
- 萬物皆對象。
- 面向對象指以屬性和行為的觀點去分析現實生活中的事物。
- 面向對象程式設計指先以面向對象的思想進行分析,然後使用面向對象的程式設計語言進行表達的過程。
- 面向對象程式設計是軟體産業化發展的需求。
- 了解面向對象的思想精髓(封裝、繼承、多态),至少掌握一種程式設計語言
類和對象的概念
- 對象主要指現實生活中客觀存在的實體,在Java語言中對象展現為記憶體空間中的一塊存儲區域。
- 類簡單來就是“分類”,是對具有相同特征和行為的多個對象共性的抽象描述,在Java語言中展現為一種引用資料類型,裡面包含了描述特征/屬性的成員變量以及描述行為的成員方法。
- 類是用于建構對象的模闆,對象的資料結構由定義它的類來決定。
類的定義
class 類名 { class Person {
類體;
} }
- **注意:**通常情況下,當類名由多個單詞組成時,要求每個單詞首字母都要大寫。
成員變量的定義
class 類名 { class Person {
資料類型 成員變量名 = 初始值; String name;
} }
- 注意:當成員變量由多個單詞組成時,通常要求從第二個單詞起每個單詞的首字母大寫
成員變量的初始值
- 對象建立後,其成員變量可以按照預設的方式初始化,具體規則如下:
面向對象-->類和對象面向對象程式設計的概念類和對象的概念案例題目案例題目
成員方法
成員方法的定義
class 類名 { class Person {
傳回值類型 成員方法名(形參清單) { void show() {
成員方法體; System.out.println("沒事秀一下")
} }
} }
- 當成員方法名由多個單詞組成時,要求從第二個單詞起每個單詞的首字母大寫。
傳回值類型的詳解
- 傳回值主要指從方法體内傳回到方法體外的資料内容。
- 傳回值類型主要指傳回值的資料類型,可以是基本資料類型,也可以是引用資料類型。
- 當傳回的資料内容是66時,則傳回值類型寫 int 即可
- 在方法體中使用return關鍵字可以傳回具體的資料内容并結束目前方法。
- 當傳回的資料内容是66時,則方法體中寫 return 66; 即可
- 當該方法不需要傳回任何資料内容時,則傳回值類型寫void即可
對象的建立
- new 類名();
- 注意:
- a.當一個類定義完畢後,可以使用new關鍵字來建立該類的對象,這個過程叫做類的執行個體化。
- b.建立對象的本質就是在記憶體空間的堆區申請一塊存儲區域, 用于存放該對象獨有特征資訊。
建立兩個對象的原理分析
引用的定義
- a.使用引用資料類型定義的變量叫做引用型變量,簡稱為"引用"。
- b.引用變量主要用于記錄對象在堆區中的記憶體位址資訊,便于下次通路。
文法格式 Person p = new Person();
類名 引用變量名; p.name = "張飛";
引用變量名.成員變量名; System.out.println(p)
案例題目
程式設計實作Person類的定義和使用。
/*
程式設計實作Person類的定義
*/
public class Person {
// 資料類型 成員變量名 = 初始值; - 其中=初始值 通常都省略不寫
String name; // 用于描述姓名的成員變量
int age; // 用于描述年齡的成員變量
// 自定義成員方法實作所有成員變量的列印
// 傳回值類型 方法名稱(形參清單) { 方法體; }
void show() {
// 成員變量和成員方法都屬于類内部的成員,是以可以直接通路成員變量不需要再加引用.的字首
System.out.println("我是" + name + ",今年" + age + "歲了!");
}
public static void main(String[] args) {
// 1.聲明Person類型的引用指向Person類型的對象
// 資料類型(類名) 引用變量名 = new 類名();
Person p = new Person();
// 2.列印對象中的成員變量值
// 引用變量名.成員變量名
//System.out.println("我是" + p.name + ",今年" + p.age + "歲了!"); // null 0
// 引用變量名.成員方法名(實參清單);
// 調用方法的本質就是根據方法名跳轉過去執行方法體後再跳轉回這個位置
p.show();
System.out.println("-----------------------------------------------------");
// 3.修改成員變量的數值
p.name = "zhangfei";
p.age = 30;
// 4.再次列印修改後的數值
//System.out.println("我是" + p.name + ",今年" + p.age + "歲了!"); // zhangfei 30
p.show();
}
}
案例題目
程式設計實作Point類的定義,特征有:橫縱坐标(整數),要求在main方法中聲明Point類型的引用指向Point對象并列印特征,然後将橫縱坐标修改為3和5後再次列印
/*
程式設計實作Point類的定義
*/
public class Point {
int x; // 用于描述橫坐标的成員變量
int y; // 用于描述縱坐标的成員變量
// 自定義成員方法實作成員變量數值的列印
void show() {
System.out.println("橫坐标是:" + x + ",縱坐标是:" + y);
}
public static void main(String[] args) {
// 1.聲明Point類型的引用指向Point類型的對象
Point p = new Point();
// 列印成員變量的數值
//System.out.println("橫坐标是:" + p.x + ",縱坐标是:" + p.y); // 0 0
p.show();
System.out.println("-----------------------------------------------");
// 2.将橫縱坐标修改為3和5後再次列印
p.x = 3;
p.y = 5;
//System.out.println("橫坐标是:" + p.x + ",縱坐标是:" + p.y); // 3 5
p.show();
}
}
程式的執行流程和記憶體分析