這一章,做筆記感覺不是很好做。每個人又每個人對面向對象的理解。這里說一下書里的關鍵字,穿插一下自己的思想
面向對象的編程語言里面很流行的一句話,一切都是對象。面向對象的核心就是抽象,抽象的能力有大有小,是決定程序員高度的一個方面
程序員的愛情里面有句話。我能抽象出整個世界 ,唯獨抽象不出你。
最初的 OOP 語言被人描述是這個樣子的
一切都是對象。是啊,在自然界,什么都是物品,是動物植物,還是菌類生物。
對象之間通過消息告知彼此應該做什么,其實就是方法的調用。
類其實就是類型的意思,任何對象都屬于一種數據類型,這個類型是程序員自己創造的等同于程序內置的數據類型一樣,比如int,String等等。差別只是怎么定義你說了算。
屬于同種類型的兩個對象必然能夠結構相同的信息,就是有相同的方法供程序員調用。
面向對象的一切基礎就是為了復用。
在談到繼承的時候作者指出,過多的繼承會導致抽象的混亂,建議使用包含,對象A包含對象B,對象B為對象A 的實例對象,一個對象可以擁有任意個實例對象。
JAVA是單繼承的,所有對象都繼承自Object對象,繼承也是為了更好的復用。
JAVA是單繼承的,這樣有一定的缺陷,為了彌補這樣的缺陷,JAVA提供了接口 這一概念,接口為類提供了擴展。
接口提供對象可以進行的行為但是沒有給出實現,讓對象自己實現,使得程序變得更加靈活。
任何實現某一接口的對象必須實現此接口定義的所誘發方法。
UML個人覺得是面向對象理解的強有力的工具,很多初學者看到UML圖覺得畫那些圖沒有意義
但是其實作用是很大的,有助于幫助程序員更好的抽象,圖讓人更清楚對象之間的關系,清楚關系讓人更容易抽象。
第一章的內容比較抽象就寫到這里,希望大家都能再腦袋里面不斷的抽象OOP 這個概念。