目錄
- 重點!!!物件導向
- 程序導向與物件導向
- 程序導向的程式思想
- 物件導向程式思想
- 類和物件(物件導向的核心概念)
- 類:
- 類的結構
- 物件:(Everything is an object)
- 類:
- 程序導向與物件導向
重點!!!物件導向
程序導向與物件導向
程序導向和麵向物件都是程式設計的一種風格(思想);
程序導向的程式思想
程序導向程式設計是一種程式設計正規化,它將程式分解為一系列的步驟或過程,每個過程依次執行以完成特定的任務。在程序導向程式設計中,資料和方法是分離的,程式主要關注解決問題的步驟和流程,而不是物件之間的互動。
- 關注焦點是過程:過程就是運算元據的步驟。如果某個過程的實現程式碼重複出現,那麼就可以把這個過程抽取成一個函式,這樣就可以大大簡化沉餘程式碼,便於維護。
- 是以函式(一個一個的功能)為結構進行程式碼組織
- 相對於面嚮物件語言,擴充套件能力差,後期維護難度較大
物件導向程式思想
物件導向程式設計(Object-Oriented Programming,OOP)是一種程式設計正規化,它以物件為基本單元,將資料和運算元據的方法封裝在物件中,透過物件之間的互動來實現程式的功能。物件導向程式設計強調的是物件的概念和物件之間的關係,使程式更易於理解、擴充套件和維護。
- 關注焦點是類:在計算機程式設計過程中,參照現實中事物,將事物的屬性特徵,行為特徵抽象出來,用類來表示。
- 以類為單位進行組織,每種事物都具備自己的屬性和行為/功能類:一類問題/分類 String,Math,Array,Scanner······
- 以類為模版例項化物件,透過物件之間的交換來實現某種功能
- 是一種設計思維,適合解決複雜問題。程式碼擴充套件性強,可維護性高
public class 類名{
}
注:千萬不要把程序導向和麵向物件對立起來,他們是相輔相成的。物件導向離不開程序導向!
區別:程序導向適合簡單的問題.
物件導向適合複雜的問題,先宏觀的分類設計,具體的某一個步驟落地時,有需要程序導向,他們是相輔相成的
類和物件(物件導向的核心概念)
類:
概念:是具有相同特徵的事物的抽象描述,是對物件的概括和總結
類的結構
-
變數:事物屬性的描述(名詞)
-
方法:事物的行為(可以做的事情 動詞)
-
構造方法:初始化物件
-
塊:沒有名字的一個程式碼塊
-
內部類:在類的內部定義的類
類的宣告格式 [訪問許可權修飾符][修飾符]class{ } 訪問修飾符有兩種public,無(預設) 修飾符:final,abstract 關鍵字class用來定義一個類 Java類名的命名規範: 類名首字母大寫,見名知意,駝峰表示
物件:(Everything is an object)
概念:實際存在的該類事物的每個個體 ,也稱為例項;以類為模板在記憶體中建立的實際存在的例項
eg:人類-->一類群體 概念
張三-->具體的人,物件
- 同一個類的每個物件有不同儲存空間
package day5;
import java.sql.SQLOutput;
public class Car {
/*
定義屬性 成員變數 直接在類{} 中定義內容,稱為類的成員
*/
String name;
String color;
int price;//不需要初始化
/*
定義方法 成員方法
*/
public void run(){
System.out.println("汽車行駛");
}
public void stop(){
System.out.println("汽車停止");
}
}
package day5;
public class TestCar {
public static void main(String[] args) {
Car car=new Car();//
//new這個運算子來建立一個物件。new的結果是一個物件的引用
//new以Car類為模板,塊獨立的空間在記憶體中開闢一空間,用來儲存物件資訊
/*
Car(型別)car(變數名)宣告一個Car變數=[把右邊的物件地址賦值給左邊的變數,用變數在後面的程式中表示記憶體中的物件]
*/
car.name="寶馬";
car.color="黑色";
car.run();
}
}