1. 程式人生 > 實用技巧 >第七章、面向物件(一)

第七章、面向物件(一)

第七章 面向物件

面向物件

面向物件的思想

面向物件基於面向過程的程式設計思想。
 
面向過程:強調的是每一個功能的步驟。
面向物件:強調的是物件,然後由物件去呼叫功能。

面向物件的思想特點

舉例:
    買電腦:
        面向過程:我的先了解電腦---瞭解我自己的的需求----找對應的引數資訊---去西二旗買電腦---講講價----買回電腦
 
        面向物件:我知道我自己要買電腦----呂呂去給我買電腦----呂呂就買回來了。
 
    吃飯:
        面向過程:去超市買菜---洗菜---切菜---炒菜---菜撐起來---吃
 
        面向物件:上飯店吃,我----服務員(點菜)---廚師(做菜)---服務員(端菜)---吃
 
 
        去飯店吃飯不太划算,所以,需要找個物件。
 
 
 
1.將大象裝進冰箱
    面向過程:
        動作有哪些
            1.開啟冰箱門
            2.裝進大象
            3.關閉冰箱門
 
 
    面向物件
        1.有哪些類
        2.每個類有哪些東西
        3.類與類直接的關係又是什麼呢?
 
 
        把大象裝進冰箱的分析?
            1.有哪些類
                大象
                冰箱
                Demo
            2.每個類有哪些東西
                大象:
                    進去
                冰箱:
                    開門
                    關門
                Demo:
                    main方法
            3.類與類直接的關係又是什麼呢?
                Demo中使用大象和冰箱類的功能

開發、設計、特徵

面向物件開發
        就是不斷的建立物件,使用物件,指揮物件做事情
 
 
面向物件設計
    其實就是在管理和維護物件之間的關係。
 
 
面向物件的特徵
    封裝
    繼承
    多型
   【抽象】
 
 
 
 
學生
    特徵:姓名、年齡、性別,.....
    行為:學習、吃飯、睡覺.....
 
 
    屬性:該事物的描述資訊
    行為:該事物能夠做什麼
 
 
Java中最基本的單位是:類。
 
現實世界事務和類的對應關係
 
事務:             類:     
    屬性                  成員變數
    行為                  成員方法

類就是一組相關的屬性和行為的集合。
物件:是該類事物的具體表現形式。具體存在的個體。
 
 
舉例:
    學生:類
    班長:物件
 
 
類的定義格式
    class 類名{
 
        類體;
 
    }
 
    例如:
        class Person{
 
        }
 
注意:當類名有多個單片語成的時候,要求每個單詞的首字母都要大寫。
 
 
成員變數的語法格式
    class 類名{
        資料型別 成員變數名 = 初始值;  - 其中=初始值可以省略,分號不可以省略
 
    }
 
    例如:
        class Person{
            String name;
            int age;
        }
 
 
    注意:
        當成員變數名字由多個字母組成的時候,要求從第二個單詞開始每一個單詞的首字母都要求大寫
 
 
    補充:
        區域性變數:主要指宣告在方法體內的變數,作用域從宣告開始一直到方法體結束。
        成員變數:主要指宣告在方法體外類體內部的變數,作用域從宣告開始到類體結束

物件

是該類事物的具體表現形式,具體存在的個體
當一個類定義存在後,可以使用new運算建立我們該類的物件。物件建立的過程一般稱為類的例項化。

物件的建立

語法格式
    new 類名();
 
例如:
    new Person(); - 匿名物件
 
使用方式
    物件傳火箭的形式叫做類的例項化,而建立物件的本質其實就是在記憶體空間中的
    堆區申請一塊空間,用於記錄該物件所擁有的成員變數的資訊。

引用的使用

使用引用資料型別宣告的變數叫做引用型別變數,簡稱為“引用”。
 
 
語法格式
 
    類名 引用名稱;
    Person p;
 
使用方式
    引用變數通常用於記錄建立物件在堆區中的記憶體地址資訊,從而可以方便的使用該物件以及該物件中的成員變數資訊,使用方式:
        引用名.成員變數名;
 
    例如:
        Person p = new Person();
        p.name = "lisi";
        p.age = 18;

成員方法(行為)

類中可以定義成員變數和成員方法
 
語法格式
    class 類名{
 
        返回值型別  成員方法名(形參列表){
 
            成員方法體;
        }
 
    }
 
    例如:
        class Person{
            String name;
            int age;
 
 
            //自定義成員方法來列印一句話
 
            void show(){
                System.out.println("面向物件學完,我就要去找物件。");
            }  
 
 
        }
 
    注意:
        當成員方法名由多個單片語成的時候,要求從第二個單詞開始首字母大寫。

成員方法的詳解

返回值型別
    返回值型別只要指從方法體中向方法體外返回的資料型別。
        返回值主要返回的型別由:
            當需要返回內容 66 時候, 則返回值寫int型別即可。
 
            當需要返回3.14的時候,則返回值寫double型別即可。
 
            當需要返回"你好"的時候,則返回值寫String型別即可。
 
 
        在方法體中使用return關鍵字來返回資料並且結束方法,例如:return 66;
        當方法體中不需要返回任何資料的時候,則返回型別寫void即可。
 
 
形參列表
    形式引數主要指從方法體外向方法體內傳入資料內容,通過使用變數的宣告來傳入。
        形式引數的語法格式:
                資料型別   形參變數名
 
                當需要傳入資料內容是 66 時候, 則形式引數寫為:int i;
 
                當需要傳入資料內容是3.14的時候,則形式引數寫為:double b。
 
                當需要傳入資料內容是"你好"的時候,則形式引數為:String s。
 
        形式引數列表的語法格式:資料型別 形參名1,資料型別 形參名2,.......
 
                當需要傳入資料內容為  66和3.14的時候,則形式引數寫為: int i,double b
                當需要傳入資料內容為 66 和"你好"的時候,則形式引數寫為:int i,String s
 
 
            當不需要傳入任何資料的時候,則形參列表位置啥也不寫即可。
 
 
 
成員方法體
    成員方法體通過用於編寫描述改方法功能的語句塊,也就是對多條語句的打包/包裝。
    當該方法的功能就用於計算1+1的和並返回的時候,,則方法體中,return 1+1;即可

成員方法的呼叫

語法格式
    引用/物件.成員方法名(實際引數列表);
 
例如:
    p.show();
 
 
 
使用方法
        實際引數列表主要用於給形式引數列表進行初始化工作。因此引數的個數、型別、順序等都必須要保持一致
        實際引數可以傳遞   直接量,變數,表示式以及方法的呼叫等.......