類是具有相同屬性和行為的一組物件的集合。類是物件的抽象。
物件是存在的具體實體,具有明確定義的狀態和行為。物件是類的例項。
在類中表示物件或實體擁有的行為時稱為屬性。
隱藏屬性、方法或實現細節的過程稱為封裝。封裝的好處就是隱藏了細節。
包是將類組合在一起形成**模組的一種機制
面向過程和物件導向的區別:
面向過程是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個一次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描述某個事物在整個解決問題中的步驟的行為。
例如五子棋,面向過程的設計思路就是首先分析問題的步驟:
1、開始遊戲,
2、黑子先走,
3、繪製畫面,
4、判斷輸贏,
5、輪到白子,
6、繪製畫面,
7、判斷輸贏,
8、返回步驟2,
9、輸出最後結果。
把上面每個步驟用分別的函式來實現,問題就解決了。
而物件導向的設計則是從另外的思路來解決問題。整個五子棋可以分為:
1、黑白雙方,這兩方的行為是一模一樣的,
2、棋盤系統,負責繪製畫面,
3、規則系統,負責判定諸如犯規、輸贏等。
第一類物件(玩家物件)負責接受使用者輸入,並告知第二類物件(棋盤物件)棋子布局的變化,棋盤物件接收到了棋子的變化就要負責在螢幕上面顯示出這種變化,同時利用第三類物件(規則系統)來對棋局進行判定。
可以明顯地看出,物件導向是以功能來劃分問題,而不是步驟。同樣是繪製棋局,這樣的行為在面向過程的設計中分散在了總多步驟中,很可能出現不同的繪製版本,因為通常設計人員會考慮到實際情況進行各種各樣的簡化。而物件導向的設計中,繪圖只可能在棋盤物件中出現,從而保證了繪圖的統一。
功能上的統一保證了物件導向設計的可擴充套件性。比如我要加入悔棋的功能,如果要改動面向過程的設計,那麼從輸入到判斷到顯示這一連串的步驟都要改動,甚至步驟之間的循序都要進行大規模調整。如果是物件導向的話,只用改動棋盤物件就行了,棋盤系統儲存了黑白雙方的棋譜,簡單回溯就可以了,而顯示和規則判斷則不用顧及,同時整個對物件功能的呼叫順序都沒有變化,改動只是區域性的。
java 類和物件的概念
一.類和物件的概念 類是對客觀事物的抽象,而物件是類的例項。二.類中有什麼 類中包含屬性和方法。1.屬性的定義 訪問修飾符 資料型別 屬性名 a.訪問修飾符包括 private 私有的 public 公共的 b.資料型別 數值型 包括整數型和浮點型 字元型,布林型 2.方法的定義 訪問修飾符 返回值...
Java中的類和物件
物件 萬物皆物件,只要是客觀存在的實體都可以理解為物件。物件導向 通過類構造出物件來解決實際問題的過程。類 類是乙個模板,確定物件將會擁有的特徵跟行為,類是物件的型別,是具有相同屬性跟方法的一組物件的集合。類在客觀世界裡是不存在的只是用來描述我們的物件資訊。物件的屬性 是指物件所具有的的特徵,例如手...
java中的類與物件
1.類的組成 生活中是根據相似的特徵和相似的行為物件的集合。程式中的類是由屬性和方法組成,屬性對應的是物件的特徵,方法對應的是物件的行為。把生活中的物件進行抽象,定義為乙個類,把物件的特徵定義為類的屬性,把物件的行為定義為物件的方法。簡單的說,物件是表示現實世界中某個事物,類是對物件的抽象描述。2....