一、面向對象思想
(一)、面向對象思想概述
1.1 概述
Java語言是一種面向對象的程序設計語言,而面向對象思想是一種程序設計思想,我們在面向對象思想的指引下,使用Java語言去設計、開發計算機程序。 這裏的對象泛指現實中一切事物,每種事物都具備自己的屬性和行爲。面向對象思想就是在計算機程序設計過程中,參照現實中事物,將事物的屬性特徵、行爲特徵抽象出來,描述成計算機事件的設計思想。 它區別於面向過程思想,強調的是通過調用對象的行爲來實現功能,而不是自己一步一步的去操作實現。
1.2 舉例
面向過程:當需要實現一個功能的時候,每一個具體的步驟都要親力親爲,詳細處理每一個細節。
面向對象:當需要實現一個功能的時候,不關心具體的步驟,而是找一個具有該功能的人,來幫我做事。
1.2.1 洗衣服:
- 面向過程:把衣服脫下來–>找一個盆–>放點洗衣粉–>加點水–>浸泡10分鐘–>揉一揉–>清洗衣服–>擰乾–>晾起來
- 面向對象:把衣服脫下來–>打開全自動洗衣機–>扔衣服–>按鈕–>晾起來
區別:
- 面向過程:強調步驟。
- 面向對象:強調對象,這裏的對象就是洗衣機。
1.2.2 打印數組輸出[1,2,3,4,5]
- 面對對象的話:每一個步驟細節都要親力親爲
public static void main(String[] args) {
int[] array = { 10, 20, 30, 40, 50, 60 };
// 要求打印格式爲:[10, 20, 30, 40, 50]
// 使用面向過程,每一個步驟細節都要親力親爲。
System.out.print("[");
for (int i = 0; i < array.length; i++) {
if (i == array.length - 1) { // 如果是最後一個元素
System.out.println(array[i] + "]");
} else { // 如果不是最後一個元素
System.out.print(array[i] + ", ");
}
}
}
- 倘若運用面對對象的思想的話,只需要調用Array數組就行了。
public static void main(String[] args) {
int[] array = { 10, 20, 30, 40, 50, 60 };
// 找一個JDK給我們提供好的Arrays類,
// 其中有一個toString方法,直接就能把數組變成想要的格式的字符串
System.out.println(Arrays.toString(array));
}
(二)、類和對象
2.1 什麼是類?
- 類:是一組相關屬性和行爲的集合。可以看成是一類事物的模板,使用事物的屬性特徵和行爲特徵來描述該類事物。
現實中,描述一類事物: 屬性
:就是該事物的狀態信息。行爲
:就是該事物能夠做什麼。
舉例:小貓。
屬性:名字、體重、年齡、顏色。 行爲:走、跑、叫。
2.2 什麼是對象?
- 對象:是一類事物的具體體現。對象是類的一個實例(對象並不是找個女朋友),必然具備該類事物的屬性和行爲。
現實中,一類事物的一個實例:一隻小貓。
舉例:一隻小貓。
屬性:tom、5kg、2 years、yellow。 行爲:溜牆根走、蹦躂的跑、喵喵叫。
2.3 類與對象的關係
- 類是對一類事物的描述,是抽象的。
- 對象是一類事物的實例,是具體的。
- 類是對象的模板,對象是類的實體。
(三)、類的定義
3.1 事物與類的對比
現實世界的一類事物:
屬性:事物的狀態信息。 行爲:事物能夠做什麼。
Java中用class描述事物也是如此:
成員變量:對應事物的屬性 成員方法:對應事物的行爲
3.2 類的定義格式
定義類:就是定義類的成員,包括成員變量和成員方法。
成員變量:和以前定義變量幾乎是一樣的。只不過位置發生了改變。在類中,方法外。
成員方法:和以前定義方法幾乎是一樣的。只不過把static去掉,static的作用在面向對象後面課程中再詳細
講解。
3.3 類的定義格式舉例:
public class ClassName {
//成員變量
//成員方法
}
- 定義類:就是定義類的成員,包括成員變量和成員方法。
- 成員變量:和以前定義變量幾乎是一樣的。只不過位置發生了改變。在類中,方法外。
- 成員方法:和以前定義方法幾乎是一樣的。只不過把static去掉,static的作用在面向對象後面課程中再詳細講解。
public class Student {
//成員變量
String name;//姓名
int age;//年齡
//成員方法
//學習的方法
publicvoid study() {
System.out.println("好好學習,天天向上");
}
//吃飯的方法
publicvoid eat() {
System.out.println("學習餓了要吃飯");
}
}