1. 程式人生 > >第一篇:面向物件程式設計基礎(上)

第一篇:面向物件程式設計基礎(上)

面向物件程式設計(Object Oriented Programming),簡稱OOP。是java程式設計的核心,也是java web應用開發的核心。主要有三個概念:封裝繼承,和多型
簡要闡述下三個概念:1、封裝:封裝是OOP語言的優點之一。把一個物件的資料加以包裝並置於其方法的保護之下叫做封裝。 2、繼承:繼承是面向物件最顯著的一個特性。繼承是從已有的類派生出新的類,新的類能吸收已有類的資料屬性和行為,並能擴充套件新的能力。 3、多型:java多型性概念可以理解為:“一個介面,多種方法”。方法重寫和過載是java實現多型的不同表現。

接下來對於初學者來說,要實現的第一個小專案:在控制檯輸出”我在銀川讀大學

“。
最簡單的操作就是直接寫一個java類來實現,下面是參考程式碼:

package demo;

public class Test {
    public static void main(String[] args) {
        System.out.println("我在銀川讀大學");
    }

}

這裡寫圖片描述

如果我想改成:“我在銀川旅遊”,要改成System.out.println(“我在銀川旅遊”)。問題來了:整個工程檔案只有一句核心語句,每次專案需求的變更都會導致整個工程檔案的變更。軟體的可用性可擴充套件性沒法體現,如果專案變大後,這種方法就不可用,所以我們要換一種方法。

建立一個Chap02的java工程,接著建立一個名叫 temp01 的package;裡面包含4個類:Address.javaStudent.javaStudy.javaTest.java
這裡寫圖片描述

其中,Student類完成主要的業務邏輯,核心方法為 public void doSomething(Study sdy,Address addr),通過呼叫Study和Address物件完成輸出功能。Student類程式碼如下:

package temp01;

public class Studert {
    private String name;
    public  String getName
(){ return name; } public void setName(String name){ this.name=name; } public Studert(String _name){ name=_name; } public void doSomething(Study sdy,Address addr){ System.out.print(this.name); sdy.study(addr); } }

Study類用於實現“做什麼”,即“讀大學”這一輸出。Study類的程式碼如下:

package temp01;

public class Study {
    public void study(Address addr){
        System.out.print("在"+addr.getName()+"讀大學");

    }

}

Address類用於實現“在哪裡”,即“銀川”這一輸出。Address類的程式碼如下:

package temp01;

public class Address {
    private String name;
    public String getName(){
        return name;
    }
    public void setName(String _name){
        name=_name;
    }


}

Test類相當於使用者測試類,用於建立物件並呼叫這些物件來完成系統功能,Test類程式碼如下:


package temp01;

public class Test {
    public static void main(String[] args) {
        Studert stu=new Studert("我");
        Study sdy=new Study();
        Address addr=new Address();
        addr.setName("銀川");
        stu.doSomething(sdy, addr);
    }

}

`通過建立4個類實現輸出“我在銀川讀大學”的目標,通過分解,我們抽象出三個物件Address,Study和Student,以及一個測試類Test。從這裡我們要開始試著瞭解什麼叫物件。
1.名詞是物件。例如:“我在銀川讀大學”裡面的“我”“銀川”這些名詞一般都抽象出來作為一個物件,然後進一步抽象成類。
2。物件的屬性必須與專案有關。“