1. 程式人生 > >一個走過太多坑的老弟對面向物件知識的總結:世上無難事,有的真不行

一個走過太多坑的老弟對面向物件知識的總結:世上無難事,有的真不行

/*程式設計思想
在寫程式碼前首先要做的事情是分析問題,然後寫出步驟。最後是寫程式碼,按照步驟進行填寫程式碼。
1.問題
2.分析
3.步驟
4.程式碼
/
//當你在開發過程遇到多次使用同一功能時要看看前面是否有問題及時修正,以便優化程式碼。
//為了提高程式碼的複用性,將功能封裝在類裡,從整體到細節思考。
//面向過程:不斷的使用函式。
//面向物件:將所有的功能進行封裝,面對的是功能的物件,基於面向過程。
//開發要先找物件按功能,利用面向物件。
/

差異(面向物件的好處):
1.面向物件更符合人們習慣的思考方式。
2.面向過程體現的是執行者,面向物件體現的是使用者,呼叫物件做事情。
3.面向物件將複雜問題簡單化。
《Thinking In Java》有:萬物皆物件。

面試的時候:
首先闡述三個好處。
然後具體化,舉例:
結合面試環境,攝像頭、水杯、電腦也是物件,它們有各自的功能,我們呼叫它們的不同功能來完成事情。
其實面試官您本身就是用面向物件的思想思考問題,面試官您已經具備了開發能力,本身就可以開發專案,但由於專案本身較大,一個人開發週期長,
為了提高效率,需要更多具備專業開發能力的人來幫助完成,這些人就是你要的物件,你只需呼叫這些物件的開發功能就可以
完成專案。

*/

/*
面向物件如何應用到需求裡去?
在需求裡儘量尋找物件(從問題裡抽取物件)。
一般思考方式:名詞大多數是物件。
需求:將大象裝進冰箱裡。
物件:大象、冰箱。
步驟:
1.開啟冰箱
2.將大象裝進去
3.關閉冰箱
冰箱{
開啟(){

}
儲存(大象){

}
關閉(){

}

}
大象{

}

/
/

class day1{
public static void main(String[] args) {
int []arr={11,13,45,96};
int maxValuae=getValuale.getMax(arr);
int minValuae=getValuale.getMin(arr);
System.out.println(“最大值:”+maxValuae+"\n最小值:"+minValuae);
}
}
class getValuale{
static int getMax(int []arr){
int maxValuae=arr[0];
for(int i=1;i<arr.length;i++){
if(arr[i]>maxValuae){
maxValuae=arr[i];
}
}
return maxValuae;
}
static int getMin(int []arr){
int minValuae=arr[0];
for(int i=1;i<arr.length;i++){
if(arr[i]<minValuae){
minValuae=arr[i];
}
}
return minValuae;
}
static void getBinaryValuale(){

		}

}

*/

/*
將面向物件落實到程式碼上。
描述小汽車:
分析:
事物的屬性:顏色,輪胎個數。
事物的行為:開動。
發現:事物其實是由屬性和行為組成的,屬性是數值,就是變數;行為就是方法,就是功能。
Java是通過類來描述事物的。

類與物件的關係:
類:對事物的描述,需要體現事物的屬性和行為。
物件:事物的實體,通過呼叫該物件的屬性和功能。

成員變數和區域性變數的區別:
區別一:定義的位置不同。
區域性變數定義成方法和語句中。
成員變數定義在類中。
區別二:在記憶體中的位置不同。
成員變數儲存在堆記憶體類中。
區域性變數儲存在棧記憶體方法中。
區別三:生命週期不同。
區域性變數隨著方法的出現而出現,隨著方法的消失而消失。
成員變數隨著物件的出現而出現,隨著物件的消失而消失。
區別四:初始化不同。
成員變數預設初始化值。
區域性變數初始化才能用。

*/
class Car{
int num;
String color;
void run(){
System.out.println(color+":"+num);
}
}
class day1{
public static void main(String[] args) {
Car car=new Car();
car.color=“Blue”;
car.num=4;
car.run();
}
}