java基礎入門之物件導論

2021-07-30 10:42:35 字數 2444 閱讀 8759

1.萬物皆為物件。

2.程式是物件的集合,他們通過傳送訊息來告知彼此所要做的。

3.每個物件都有自己的由其他物件所構成的儲存。

4.每個物件都擁有其型別。

5.某個特定型別的所有物件都可以接受同樣的訊息。

建立抽象資料型別(類)是物件導向程式設計的基本概念之一。

抽象資料型別的執行方式有內建型別幾乎完全一致:你可以建立某一型別的變數(按照物件導向的說法,稱其為物件或例項),然後操作這些變數(稱其為傳送訊息或請求;傳送訊息,物件就知道要做什麼)。

因為類描述了具有相同特性(資料元素)和行為(功能)的物件集合,所以乙個類實際上就是乙個資料型別,例如所有浮點型別數字具有相同的特性和行為集合。二者的差異在於,程式設計師通過定義類來適應問題,而不再被迫只能使用現有的用來表示機器中的儲存單元的資料型別。可以根據需求,通過新增新的資料型別來拓展程式語言。程式設計系統欣然接受新的類,並且像對待內建型別一樣地照管它們和進行型別檢查。

任何程式都是你所設計的系統的一種**,物件導向技術的應用確實可以將大量的問題很容易地降解為乙個簡單的解決方案。

一旦類被建立,就可以隨心所欲地建立類的任意個物件,然後去操作它們,就像它們是存在於你的待求解問題中的元素一樣。事實上,物件導向程式設計的挑戰之一,就是在問題空間的元素和解空間的物件之間建立一對一的對映。

但是,怎樣才能獲得有用的物件呢?必須有某種方式產生物件的請求,使物件完成各種任務,如開啟開關。每個物件都只能滿足某些請求,這些請求由物件的介面(inte***ce)所定義,決定介面的便是型別。

介面確定了對某一特定物件所能發出的請求。但是,在程式中必須有滿足這些請求的**。這些**與隱藏的資料一起構成了實現。在型別中,每乙個可能的請求都有乙個方法與之相關聯,當向物件傳送請求時,與之相關聯的方法就會被呼叫。此過程通常被概括為:向某個物件「傳送訊息」(產生請求),這個物件便知道此訊息的目的,然後執行對應的程式**。

light lt = new light();

lt.on();

上例中,

型別/類的名稱是light,定義特定的light物件的名稱是

lt(這個特定light物件的引用),然後呼叫new方法來建立該型別的新物件。為了向物件傳送訊息,需要宣告物件的名稱,並以符號鏈結乙個訊息請求。從預定義類的使用者觀點來看,這些差不多就是用物件來進行設計的全部。

當正在試圖開發或莉姐乙個程式設計時,最好的方法之一就是將物件想象為「服務提供者」。程式本身將向使用者提供服務,它將通過呼叫其他物件提供的服務來實現這一目的。你的目標就是去建立(或者最好是在現有**庫中尋找)能夠提供理想的服務來解決問題的一系列物件。

將物件看作是服務提供者還有乙個附帶的好處:它有助於提高物件的內聚性。

高內聚是軟體設計的基本質量要求之一:這意味著乙個軟體構建的各個方面「組合」得很好。

人們在設計物件時所面臨的乙個問題是,將過多的功能都塞在乙個物件中。

在良好的物件導向設計中,每個物件都可以很好地完成一項任務,但是它並不試圖做更多的事,這樣做也有利於建立能夠在別處復用的新物件。

將物件作為服務提供者看待是一件偉大的簡化工具,這不僅在設計過程中非常有用,而且當其他人試圖理解你的**或重用某個物件時,如果他們看出了這個物件所能提供的服務的價值,它會使調整物件以適應其設計的過程變得簡單得多。

即按類建立者和使用者的許可權來設計邊界:public、private、protected三種訪問型別。

**復用是物件導向程式設計語言所提供的最了不起的有點之一。對簡單地復用某個類的方式就是直接使用該類的乙個物件,此外也可以將那個類的乙個物件置於某個新的類中。我們稱其為「建立乙個成員物件」。用現有類合成新的類稱為「組合」,如果是動態發生的稱為「聚合」,視為「擁有」關係,如「汽車擁有殷引擎」。新類的成員物件通常都被宣告為private,是的使用新類的類使用者不能訪問它們。

類是物件導向程式設計語言的基本單位。

當繼承現有型別時,也就創造了乙個新的型別。這個新的型別不僅包括現有型別的所有成員(儘管private成員被隱藏起來不可訪問),而且更重要的是它複製了基類的介面,也就是說,所有可以傳送給基類物件的訊息同時也可以傳送給子類物件,子類具有父類的基本特徵。

繼承(extends)有兩種使用方式,一種是直接在介面中新增新方法,第二種就是覆蓋(overriding)父類的現有方法,使同一方法具有不同的行為。這樣就不用重新寫一遍新類的所有介面的實現,只要在繼承類中作簡單的修改就可以了。

父類在呼叫子類相同的方法時,會根據不同的子類執行該方法的具體實現。

在oop中,所有的類都只有乙個基類,但所有的類最終都繼承自單一的基類object。因此所有的類都有乙個公共介面。

容器也稱為集合,如list(用於儲存序列)、map(也被稱為關聯陣列,用來建立物件之間的關聯)、set(每種物件型別只持有乙個)以及諸如佇列、樹、堆疊等更多的構件。

使用不同的容器的原因。第一,不同的容器提供了不同型別的介面和外部行為;第二,不同的容器對於某些操作具有不同的效率。

容器具有引數化型別《范型》。

Java物件入門

物件導向的一些認識 1.所有東西都是物件 2.程式由一堆物件組成,物件由訊息傳遞來表現各自的行為 3.每個物件都有自己的儲存空間,可容納其他成員 類物件等 4.每個物件都有乙個型別,相同型別的類可以接收相同的訊息,作出相同的響應 繼承其實是介面的重用 1.繼承可以改善基礎類 2.繼承可以新增新的特性...

Java 入門基礎 物件導向的特徵

計算機軟體系統是現實生活中的業務在計算機中的對映,而現實生活中的業務其實就是乙個個物件協作的過程。物件導向程式設計就是按現實業務一樣的方式將程式 按乙個個物件進行組織和編寫,讓計算機系統能夠識別和理解用物件方式組織和編寫的程式 這樣就可以把現實生活中的業務物件對映到計算機系統中。物件導向的程式語言有...

Java入門之程式設計基礎(五)

方法 就是完成功能的 塊 1.有返回值的方法 1.定義格式 修飾符 返回值型別 方法名 引數型別 引數名1,引數型別 引數名2.2.格式解釋 修飾符 public static 返回值型別 用來限定返回值的型別 方法名 提供呼叫方法的方式 引數列表 用於接收呼叫方法時傳入的引數 方法體 完成功能 r...