91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java對象相關知識點有哪些

發布時間:2021-11-24 14:34:43 來源:億速云 閱讀:141 作者:iii 欄目:大數據

這篇文章主要介紹“Java對象相關知識點有哪些”,在日常操作中,相信很多人在Java對象相關知識點有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java對象相關知識點有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1.面向對象程序設計(Object-oriented Programming,OOP)。

2.需解決的問題的復雜性直接取決于抽象的類型和質量。

3.匯編語言是對底層機器的輕微抽象;”命令式“語言是對匯編語言的抽象,但是此類語言所做的主要抽象仍要求在解決問題時要基于計算機的結構,而不是基于所要解決的問題的結構來考慮。

4.OOP允許根據問題來描述問題,而不是根據運行解決方案的計算機來描述問題。

5.Alan Kay總結了第一個成功的面向對象語言、同時也是Java所基于的語言之一的Smalltalk的五個基本特性,這些特性表現了一種純粹的面向對象程序設計方式。
(1)萬物皆為對象
(2)程序是對象的集合,它們通過發送消息來告知彼此要做的
(3)每個對象都有自己的由其他對象所構成的存儲
(4)每個對象都擁有其類型
(5)某一特定類型的所有對象都可以接收同樣的消息

6.Booch對對象提出了一個更簡潔的描述:對象具有狀態、行為和標識。

7.描述了具有相同特性(數據元素)和行為(功能)的對象集合,所有一個類實際上就是一個數據類型。

8.程序員可以根據需求通過定義新的類來適應問題,即通過添加新的數據類型來擴展編程語言,編程系統欣然接收新的類,并且像對待內置類一樣地照管它們和進行類型檢查。

9.UML(Unified Modelling Language,統一建模語言)形式的圖:每個類都由一個方框表示,類名在方框頂部,數據成員在方框中間部分,方法在方塊底部。通常,只有類名和公共方法被示于UML設計圖中。如果只對類型感興趣,那么方塊底部也不需要給出。

10.當年試圖開發或理解一個程序設計時,最好的方法之一就是將對象想象為”服務提供者”。程序本身將向用戶提供服務,它將通過調用其他對象提供的服務來實現這一目的。你的目標就是去創建(或者最好在現有代碼庫中尋找)能夠提供理想的服務來解決問題的一系列對象。

11.將對象看作服務提供者,有助于提供對象的內聚性。高內聚時軟件設計的基本質量要求之一:意味著一個軟件構件的各方面“組合”得很好。

12.在良好的面向對象設計中,每個對象都可以很好地完成一項任務,但是它并不試圖做更多的事

13.程序開發人員按照角色分為:類創建者(那些創建新數據類型的程序員)和客戶端程序員(那些在其應用中使用數據類型的類消費者)。

14.類創建者的目標是構建類,這種類只向客戶端程序員暴露必須的部分,而隱藏其他部分,被隱藏的部分通常代表對象內部脆弱的部分,它們很容易被粗心或不知內情的客戶端程序員所毀壞,隱藏實現隱藏起來可以減少程序bug;客戶端程序員的目標是收集各種用來實現快速應用開發的類。

15.訪問控制第一個原因就是讓客戶端程序員無法觸及他們不應該觸及的部分;第二個原因就是允許庫設計者可以改變類內部的工作方式而不用擔心會影響到客戶端程序員。

16.最簡單的復用某個類的方式就是直接使用該類的一個對象,如果將其置于某個新的類中,則稱為在此類中創建了一個成員對象,這種概念被稱為 “組合”(has-a關系),如果組合是動態發生的,則被稱為“聚合”

17.繼承如果只覆蓋了基類的方法,則意味著導出類(也稱為繼承類或子類)和基類(也成為源類、超類或父類)是完全相同的類型,因為它們有完全相同的接口,可用一個導出類對象來完全替代一個基類對象,這被視為純粹替代,通常稱為替代原則,基類與導出類的關系為**(is-a關系)。導出類中如果添加了新方法**,則為**(is-like-a關系)**,導出類擴展了接口,雖然新類型仍可替代基類,但這種替代并不完美,因為基類無法訪問新添加的方法。

18.把一個對象不當作它所屬的特定類型來對待,而是將其當作基類的對象來對待,這使得人們可以編寫出不依賴特定類型的代碼,且易于擴展,這種操作稱為泛化

19.一個非面向對象編程的編譯器產生的函數調用會引起所謂的前期綁定,意味著編譯器將產生對一個具體函數名字的調用,而運行時將這個調用解析到將要被執行的代碼的絕對地址;在OOP中,采用后期綁定,編譯器確保被調用方法的存在,并對調用參數和返回值執行類型檢查(無法提供此類保證的語言稱為弱類型語言),但是并不知道要被執行的確切代碼,程序直到運行時才能確定代碼的地址。為了執行后期綁定,Java使用一小段特殊的代碼來替代絕對地址調用,這段代碼使用在對象中存儲的信息來計算方法體的自制。

20.Java是單根繼承結構,所有類都繼承自Object類,單根繼承保證所有對象都具備某些功能,例如,所有對象可以很容易地在堆上創建,被垃圾回收器回收。

21.C++則無法確保所有對象都屬于同一個基本類型,從向后兼容的角度看,這能更好地適應C模型,而且受限少,但在引用新類庫時,需要解決兼容問題(有可能要通過多重繼承)。

22.Java中,容器類型持有對其中對象的引用,可以隨時擴充容器。容器有多種類型,如List(用來存儲序列),Map(也成為關聯數組,用來建立對象之間的關聯),Set(每種對象類型只持有一個),以及隊列、樹、堆棧等構件。

23.ArrayList和LinkedList可以理解為對象的動態數組和鏈表,二者的存取特點和插入刪除類似數組與鏈表,當不確定用哪一種時,可用二者的接口List,將容器之間進行轉換時對代碼的影響降低到最小

24.容器+單根繼承結構意味著存儲Object類型的容器可存儲任何類型,當向此種容器中置入對象時,對象引用被置入,且被向上轉型為Object,當把它取回時,獲取了一個Object對象的引用,因此需向下轉型為其原本類型

25.向上轉型是安全的;向下轉型是不安全的,而解決方案為Java中的泛型。

26.Java在被稱為堆的內存池中動態地創建對象,直到運行時(運行相關代碼那一刻)才知道需要多少對象,它們的生命周期如何,以及具體類型是什么。如果需要一個新對象,可以在需要的時候在堆中創建,因為存儲空間在運行時被動態管理,所有需要大量時間在堆中分配存儲空間;C++則將對象置于對戰或靜態存儲區域內來實現,對象的存儲空間和聲明周期可以在編寫程序時確定,在堆棧中創建存儲空間和釋放存儲空間通常各需一條匯編指令即可,分別對應將棧頂指針向下移動和向上移動。前者效率相對較低(程序較復雜時此開銷將微乎其微)但方便,后者效率高但需要頻繁考慮內存泄漏問題。


end.名詞科普(來自百度百科):

(1)LISP語言(LISP,List Processing的縮寫):創始時間為1958年,是一種早期開發的、具有重大意義的自由軟件項目。它適用于符號處理、自動推理、硬件描述和超大規模集成電路設計等。特點是,使用表結構來表達非數值計算問題,實現技術簡單。LISP語言已成為最有影響,使用十分廣泛的人工智能語言。

(2)Prolog(Programming in logic):是一種面向演繹推理的邏輯型程序設計語言,最早于1972年由柯爾麥倫納(Colmeraner)及其研究小組在法國馬賽大學提出。

(3)Smalltalk:Smalltalk語言仍被認為是最具有代表性和運用最廣泛的面向對象程序設計語言。Smalltalk語言的前身叫做Flex系統,最早是由Alan Kay提出的,Smalltalk簡單易學,使用方便,因為它的句法和語義比較簡單,并且涉及的概念不多。對象、類、消息和方法等少數幾個概念就構成Smalltalk的編程基礎。

(4)Booch:Booch方法是早期面向對象的軟件開發方法的一種,Booch認為軟件開發是一個螺旋上升的過程,每個周期包括4個步驟,分別是標識類和對象、確定類和對象的含義、標識關系、說明每個類的接口和實現。Booch方法的開發模型包括靜態模型和動態模型,靜態模型分為邏輯模型(類圖、對象圖)和物理模型(模塊圖、進程圖),描述了系統的構成和結構。動態模型包括狀態圖和時序圖。

(5)內聚性(Cohesion):也稱為內聚力,是一軟件度量,是指機能相關的程序組合成一模塊的程度,或是各機能凝聚的狀態或程度。是結構化分析的重要概念之一。量測內聚性的方式很多,有些方法是由分析源代碼,得到非量化的結果,有些方法則是檢查源代碼的文本特征,以得到內聚性的量化分數。內聚性是屬于順序式的量測量,一般會以“高內聚性”或“低內聚性”來表示。一般會希望程序的模塊有高內聚性,因為高內聚性一般和許多理想的軟件特性有關,包括魯棒性、可靠度、可復用性及易懂性(understandability)等特性,而低內聚性一般也代表不易維護、不易測試、不易復用以及難以理解。

(6)魯棒是Robust的音譯,也就是健壯和強壯的意思。它也是在異常和危險情況下系統生存的能力。比如說,計算機軟件在輸入錯誤、磁盤故障、網絡過載或有意攻擊情況下,能否不死機、不崩潰,就是該軟件的魯棒性。所謂“魯棒性”,也是指控制系統在一定(結構,大小)的參數攝動下,維持其它某些性能的特性。根據對性能的不同定義,可分為穩定魯棒性和性能魯棒性。

到此,關于“Java對象相關知識點有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洪雅县| 轮台县| 泗水县| 临安市| 谢通门县| 介休市| 辽阳市| 瑞安市| 黄龙县| 永川市| 漳州市| 千阳县| 南通市| 拜城县| 福建省| 吴忠市| 抚松县| 荔浦县| 尖扎县| 永嘉县| 安仁县| 资兴市| 台前县| 阳西县| 红河县| 凯里市| 安泽县| 巴彦县| 定襄县| 嘉义县| 同德县| 金阳县| 文昌市| 松溪县| 闻喜县| 久治县| 新宁县| 铁岭市| 泸溪县| 新余市| 桂平市|