JavaSE什麼是物件導向?

Yang0710發表於2024-05-25

目錄
  • 重點!!!物件導向
    • 程序導向與物件導向
      • 程序導向的程式思想
      • 物件導向程式思想
    • 類和物件(物件導向的核心概念)
      • 類:
        • 類的結構
      • 物件:(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();
    }
} 

相關文章