第一篇:面向物件程式設計基礎(上)
面向物件程式設計(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.java,Student.java,Study.java,Test.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。物件的屬性必須與專案有關。“