java學習日記_9:面向物件的概念以及思想
java是面向物件的程式語言,
面向物件是基於面向過程的程式設計思想;
先區別一下面向過程與面向物件——
面向過程:強調每一步的功能步驟,
面向過程:強調的是物件,然後由物件去呼叫功能;
面向物件的特點——符合常規思維;將複雜簡單化;將執行者變為指揮者;
舉個很直觀的例子:
:把大象裝進冰箱
面向過程:
動作有哪些呢?
A:開啟冰箱門
B:裝進大象
C:關閉冰箱門
程式碼體現;
class Demo {
public static void main(String[] args) {
/*
System.out.println("開啟冰箱門");
//開啟冰箱門的東西,我現在僅僅是為了演示,就寫了一個輸出語句
//其實,它可能需要做很多操作。
//這個時候程式碼就比較多一些了
//假設我要多次開啟冰箱門,
//程式碼一多,每次都寫一遍,麻煩不
//我們就應該用方法改進
System.out.println("裝進大象");
System.out.println("關閉冰箱門");
*/
//寫了方法以後,呼叫就改變了
open();
in();
close();
}
public static void open() {
System.out.println("開啟冰箱門");
}
public static void in() {
System.out.println("裝進大象");
}
public static void close() {
System.out.println("關閉冰箱門");
}
}
面向物件:
我們怎麼才能更符合面向物件思想呢?
A:有哪些類呢?
B:每個類有哪些東西呢?
C:類與類直接的關係是什麼呢?
把大象裝進冰箱的分析? (如何分析有哪些類呢?UML。名詞提取法。)
A:有哪些類呢?
大象
冰箱
Demo
B:每個類有哪些東西呢?
大象:
進去
冰箱:
開門
關門
Demo:
main方法
C:類與類直接的關係是什麼呢?
Demo中使用大象和冰箱類的功能。
程式碼體現:
class 大象 {
public static void in() {
System.out.println("裝進大象");
}
}
class 冰箱 {
public static void open() {
System.out.println("開啟冰箱門");
}
public static void close() {
System.out.println("關閉冰箱門");
}
}
class Demo {
public static void main(String[] args) {
冰箱呼叫開門
大象呼叫進去
冰箱呼叫關門
}
}
4:開發,設計,特徵
面向物件開發
就是不斷的建立物件,使用物件,指揮物件做事情。
面向物件設計
其實就是在管理和維護物件之間的關係。
面向物件特徵
封裝(encapsulation)
繼承(inheritance)
多型(polymorphism)