面向對象和麪向過程
面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了;
面向對象是把構成問題事務分解成各個對象,建立對象的目的不是爲了完成一個步驟,而是爲了描敘某個事物在整個解決問題的步驟中的行爲。
面向過程相當於是執行者,簡單點說就是親力親爲,也是面對對象最核心思想,特徵是費時間和費精力,比如以面向過程思考方式模擬下班回家喫飯:
流程:買菜--洗菜--切菜--炒菜--喫飯
每一步都需要自己來做,費時費力比較麻煩。
而面向對象相當是於指揮者,就是找別人做省時省力,特徵是省時間和省精力,如果以面向對象方式模擬下班回家喫飯則:
流程:去飯館--點餐--交錢--廚師做--喫飯
這樣的好處是主要任務交給了廚師,所以省時間和精力,方便。
其實就是兩句話,面向對象就是高度實物抽象化、面向過程就是自頂向下的編程!
對象和類
對象:對象是系統中用來描述客觀事物的一個實體,是構成系統的一個基本單位。一個對象由一組屬性和對這組屬性進行操作的一組服務組成。
類:類是具有相同屬性和行爲的一組對象的集合。爲屬於該類的所有對象提供了統一的抽象描述,其內部包括屬性和行爲兩個主要部分。
new 類();
//按照類所描述的內容創建一個具體的對象出來
class 對象{}
//直接定義在類中的變量 成員變量
如何表示一個座標?
int x;
int y;
int[] p=new int[2];
p[0] p[1]
如何表示一組座標?二維數組
int[][] points=new int[10][2];
points[0] points[1];
public static double distance(){
return xxx;
}
class P{
int x;
int y;
public double distance(P p){
return xxx;
}
}
注意:當程序中創建多個類時,編譯時候有幾個類就會生成幾個class文件。
沒有主函數的類不能夠獨立運行。
有主函數的類稱爲主類,主要用來運行程序。