Java程式設計思想 筆記001

2021-07-08 14:54:50 字數 1909 閱讀 9265

"我們之所以將自然界分解,組織成各種概念,並按其**含義分類**,主要是因為我們是整個口語交流社會共同遵守的協定和參與者,這個協定以語言的形式的形式固定下來......除非咱曾這個規定中規定的有關語言資訊的**組織和分類**,否則我們根本無法交談" 

-benjamin lee whorf(1897~1941)

計算機革命起源於機器,因此,程式語言的產生也始於對機器的模仿。

計算機是頭腦延伸的工具。

所有程式語言都提供抽象機制。

人們所能解決問題的複雜性直接取決於抽象的型別和質量。所謂的「型別」是指"所抽象的是什麼?"

1.萬物皆為物件

將物件視為奇特的變數,它可以儲存資料,除此之外,你還可以要求它在自身上執行操作。 你可以抽取待求解問題的任何概念化構件,將其表示為程式中的物件。

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

請求物件步驟: 傳送訊息->物件

可以把訊息想象為針對某個特定物件的方法的呼叫請求

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

可以通過建立包含現有物件的包的方式來建立新型別的物件。因此,可以把程式中構件複雜的體系,同時將其複雜性隱藏在物件的簡單行背後。

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

每個物件都是某個類(class)的乙個例項(instance)。

每個類最重要的區別於其他類的特性就是」可以傳送什麼樣的訊息給它」

5.某乙個特定型別的所有都可以接收同樣的訊息

泛型 圓形 -方形 都是幾何形-所以說 幾何形性質相關的事務 都可以用在這兩個上面。

這種替代性(substitutability)是oop中最強有力的概念之一

所有物件都是唯一的,但同時也具有相同的特性和行為的物件所歸屬類的一部分。

類描述了具有相同特性(資料元素)和行為(功能)的物件集合,所有乙個類實際上就是乙個資料型別,例如所有浮點型數字具有相同的特性和行為集合。

物件導向設計挑戰:問題空間的元素和解空間的物件之間建立一對一的對映。

每乙個可能請求都有乙個方法與之相關聯,當向物件傳送請求時,與之相關聯的方法就會被呼叫。

此過程通常被概況為:向某個物件「傳送訊息(產生請求)」,這個物件遍知道此訊息的目的,然後執行相應的程式**。

物件想象成「服務提供者」程式本身將向使用者提供服務,它將通過呼叫其他物件提供的服務來實現這一目的。

一旦類被建立並測試完,那麼它就應該(在理想情況下)代表乙個有用的**單元。

最簡單地服用某個類的方式就是直接使用該類的乙個物件,此外也可以將那個類的乙個物件置於某個新的類中。我們稱為「建立乙個成員物件」。

新的類可以由任意數量,任意型別的其他物件以任意可以實現新的類中想要的功能的方式所組成。因為是在使用現有的類合成新的類,我們稱為「組合(composition)」

物件導向總是向著模仿現實的事物而出發,現實所有的事物都有兩種屬性:行為(方法)特徵(屬性),萬物皆物件是表示物件導向最高深的境界一花一草都是乙個物件,在常人眼中都是無法想象的吧。

一般來說物件導向有三大特徵:封裝,繼承,多型。

類建立的時候 我們應該本著 它有什麼職責,需要什麼職責,向別人提供什麼服務,而不是像面向過程一樣,一步步來實現,我們呼叫物件的時候,不應該什麼都是我們自己完成的思想,而是 我讓你做。

我們做的只是建立物件,然後給物件發個訊息,讓它做某些事情,而不是像面向過程程式設計一樣,什麼事情都是我們來做。

java 程式設計思想筆記

1 陣列初始化 2 int a int a 花括號是陣列特殊初始化方式,相當於new。所有的陣列,不論是基本資料型別還是物件型別,成員length,最大下標 length 1.int a new int new random 43 nextint 20 arrays.tostring a 建立乙個引...

筆記 Java程式設計思想20180726

protected關鍵字與private作用相當,差別僅在於繼承的類可以訪問protected成員,但是不能訪問private成員。static方法的乙個重要用法就是在不建立任何物件的前提下就可以呼叫它。string類支援 和 將乙個物件賦值給另乙個物件,是將 引用 從乙個地方複製到另乙個地方。ra...

java程式設計思想

一 一切都是物件 現實世界中的一切,人 動物 操作流程 衣服等等,都可以抽象成物件 二 類引用 class tv tv tv tv是tv的乙個引用,未初始化時指向null這個特殊的物件 tv new tv tv指向 new tv 這個物件三 記憶體分配 暫存器,最快的儲存區,根據需要分配 棧,儲存基...