從頭認識java 1 2 物件 服務提供者

2021-09-02 12:39:06 字數 1267 閱讀 8410

這一章節我們來討論一下怎麼理解物件?

1.服務提供者

物件:**於「object」,中文說的比較抽象,個人更傾向於台灣香港的譯法「物件」,個人實實在在的感覺,不用那麼虛,當然,如果叫例項也是比較好理解。

物件,我們可以想象成服務的提供者。它包含了一組資料以及一些可執行的方法。

例如:

package com.ray.ch01;

public class bird

public void setname(string name)

private void say()

public static void main(string args)

}

在上面的**裡面得出:

bird,我們稱為類,其實它就是我們自己定義的資料型別,對映實際世界裡面的「鳥」。

在main方法裡面的bird1和bird2,我們稱之為物件,或者例項,或者物件等等,這兩個例項屬於了bird這個資料型別,裡面含有name這個屬性,還有say這個方法。

這裡,我們可以把bird1看作服務提供商,這個物件給我們提供say這個執行的方法。

2.分解物件

上面提到服務提供商,那麼我們可以引入下面例子。

例如:黑白雙方在設計五子棋時,可分為行為是相同的黑白雙方,負責繪製畫面的棋盤系統,負責判定犯規、輸贏等的規則 系統。第一類物件(玩家物件)負責接受使用者輸入,並告知第二類物件(棋盤物件)棋子布局的變化,棋盤物件接收到了棋子的變化就要負責在螢幕上面顯示出這種 變化,同時利用第三類物件(規則系統)來對棋局進行判定問題的步驟中的行為。

又例如:在分析學生管理系統,第一類物件是使用者,負責輸入資料,第二類物件是顯示物件,賦值顯示返回,第三類物件是邏輯處理物件,主要負責處理資料。

3.高內聚

既然上面提到了分解物件,那麼必須提到高內聚。

高內聚:從功能角度來度量模組內的聯絡,乙個好的內聚模組應當恰好做一件事

我們下面給出反面例子:

package com.ray.testobject;

public class bird

private void fly()

}

上面的例子很明顯,sing這個方法應該屬於歌唱家的,而fly是屬於鳥的,因此這個類的內聚不高。由於內聚不高,因此當呼叫sing的方法的時候,就可能耦合bird這個類,造成以後維護的麻煩。

總結,這一章節介紹了物件作為服務提供者使用,並且延伸到分解物件和內聚。

這一章節就到這裡,謝謝。目錄

chap12 物件識別(岡薩雷斯)

1模式和模式類 模式即描繪子的組合,模式類是乙個擁有某些共同性質的模式族。用機器完成的模式識別包括對不同的模式分配各自所屬類的技術 這種技術是自動的並且盡可能地減少人的介入。2基於決策理論方法的識別 使用決策理論方法的識別是基於使用決策函式的識別 匹配 基於匹配的識別技術通過乙個原型模式向量表示乙個...

西行漫記(12) 物件,結束與開始

昨天是object bootcamp的最後乙個session。時間過得真快,一轉眼三周都快過去了。object上到最後,讓我想起了一件很久遠以前的事情 變化點 不變點分析。第一次看到這個概念是在design patterns explained裡面,但真正寫程式的時候很少真正用這種分析思路,更多的是...

西行漫記(12) 物件,結束與開始

昨天是object bootcamp的最後乙個session。時間過得真快,一轉眼三周都快過去了。object上到最後,讓我想起了一件很久遠以前的事情 變化點 不變點分析。第一次看到這個概念是在design patterns explained裡面,但真正寫程式的時候很少真正用這種分析思路,更多的是...