[Java基礎篇]面向物件與封裝——類與物件
類與物件
一、面向物件思想概述
-
概述
Java語言是一種面向物件的程式設計語言,而面向物件思想是一種程式設計思想,我們在面向物件思想的指引下, 使用Java語言去設計、開發計算機程式。 這裡的物件泛指現實中一切事物,每種事物都具備自己的屬性和行為。面向物件思想就是在計算機程式設計過程中,參照現實中事物,將事物的屬性特徵、行為特徵抽象出來,描述成計算機事件的設計思想。 它區別於面向過程思想,強調的是通過呼叫物件的行為來實現功能,而不是自己一步一步的去操作實現。
區別:
面向過程:強調步驟。
面向物件:強調物件。 -
特點
面向物件思想是一種更符合我們思考習慣的思想,它可以將複雜的事情簡單化,並將我們從執行者變成了指揮者。 面向物件的語言中,包含了三大基本特徵,即封裝、繼承和多型
二、類和物件
-
類
類:是一組相關屬性和行為的集合。可以看成是一類事物的模板,使用事物的屬性特徵和行為特徵來描述該 類事物。
屬性:就是該事物的狀態資訊。
行為:就是該事物能夠做什麼。舉例:小貓。
屬性:名字、體重、年齡、顏色。
行為:走、跑、叫。 -
物件
物件:是一類事物的具體體現。物件是類的一個例項,必然具備該類事物的屬性 和行為。 現實中,一類事物的一個例項。
舉例:一隻小貓。
屬性:tom、5 kg、2 years、yellow。
行為:溜牆根走、蹦躂的跑、喵喵叫。 -
類與物件的關係
- 類是對一類事物的描述,是抽象的。
- 物件是一類事物的例項,是具體的。
- 類是物件的模板,物件是類的實體
三、類的定義
-
事物與類的對比
現實世界的一類事物:
屬性:事物的狀態資訊。 行為:事物能夠做什麼。Java中用class描述事物也是如此:
成員變數:對應事物的屬性 。成員方法:對應事物的行為 -
類的定義格式
public class ClassName { //成員變數 //成員方法 }
四、物件的使用
-
物件的使用格式
建立物件:
類名 物件名 = new 類名();
-
使用物件訪問類中的成員:
物件名.成員變數; 物件名.成員方法();
程式碼
public class Student { //成員變數 String name; int age; //成員方法(不需要寫static關鍵字) public void eat() { System.out.println("吃飯"); } public void sleep() { System.out.println("睡覺"); } }
public class DemoClass {
public static void main(String[] arges) {
Student stu = new Student();
stu.name = "masahiko";
stu.age = 20;
System.out.println("student name:" + stu.name);
System.out.println("student age:" + stu.age);
stu.eat();
stu.sleep();
}
}
五、 成員變數和區域性變數
- 成員變數和區域性變數的區別
成員變數 | 區域性變數 | |
---|---|---|
記憶體中的位置 | 堆記憶體 | 棧記憶體 |
在類中的位置 | 類中,方法外 | 方法中或者方法宣告上(形式引數) |
作用範圍 | 類中 | 方法中 |
初始化值 | 有預設值 | 沒有預設值 |
生命週期 | 隨著物件的建立而存在 隨著物件的消失而消失 |
隨著方法的呼叫而存在 隨著方法的呼叫完畢而消失 |
- 成員變數的預設值
資料型別 | 預設值 | |
---|---|---|
基本型別 | 整數(byte,short,int,long) | 0 |
浮點數(float,double) | 0.0 | |
字元(char) | '\u0000' | |
布林(boolean) | false | |
引用型別 | 陣列,類,介面 | null |
參考資料:
《Java核心技術 卷I 》Cay S. Horseman
《Java教程零基礎入門到精通IDEA版》黑馬程式設計師