1.後綁定(動態綁定)php
2.繼承與接口實現的多態性html
3.排序(選擇排序法和插入排序法)java
4.搜索(線性搜索和二分搜索)git
問題1解決方案: 沒看到這裏的時候,一直認爲引用變量是什麼類型的,就只能調用相關的方法。因此在每次寫類的時候,都一直盡力於完善有關的方法。動態綁定的執行效率低於早期綁定,可是動態綁定所體現的靈活性是不能比的。程序員
- 引用變量的類型和該引用變量指向的對象必須是兼容的,但沒必要徹底相同,二者的關係能夠是很靈活的。
問題2的解決方案:java實現運行時多態性的基礎是動態方法的調度,它是一種在運行時而不是在編譯期調用重載方法的機制。多態的存在,能夠對原有代碼的替換、可行的擴充,能夠進行靈活多樣的操做,極大的提升了使用效率,同時經過藍墨雲上視頻內容的講解,對於數據庫內的類型進行修改或是替換到亮一個數據庫裏,咱們總不能把全部數據進行調用,再進行添加吧,因此爲了解決這種問題的發生,咱們能夠在二者之間進行一個多態的應用,就能夠極大的縮短解決事件和解決中產生的問題。web
- 多態性是指一個引用變量在不一樣時刻能夠指向不一樣類型的對象。經過這種方式調用的方法在不一樣時刻將於不一樣方法實現代碼的綁定。被綁定的方法代碼取決於被引用的對象的類型。
問題3的解決方案:排序的問題是用多態性解決的問題之一。本書介紹了兩種相對簡答的排序方法,我在網上又查出了冒泡排序、希爾排序、快速排序、堆排序等不一樣類型的排序方式(足可見出數據結構原理有多強大,有多燒腦了)數據庫
- 相同點:相同的排序效果、同等的效率、相似的雙層循環、都執行大約n*n次的操做
- 不一樣點:排序方法有所不一樣,選擇排序法能夠是兩個數的替換所達到有必定的順序,插入排序法是進行一個個相似順時針的循環進行的排序。選擇排序法所執行的交換操做的次數相對較少,選擇法優於插入法。
問題4的解決方案:線性搜索是以一個端點開始進行「逐一的」、「有順序的」搜索。二分搜索的方式相似高中數學學過的「二分法」,不斷的取中點,一半一半的進行篩選。相比線性搜索,二分搜索的效率更高,但二分搜索有一個弊病,就是數組中的元素必須是有必定的順序的(升序或者降序)對於兩種搜索方式的選擇,數據的搜索量較大的優選二分搜索,搜索的效率不是重要問題的狀況下,咱們能夠選擇線性搜索。編程
- 被搜索的一組元素稱爲搜索池
- 對於二分搜索若是是偶數個的元素,咱們在第一次選擇的時候,經過代碼
mid = (min + max) / 2
就能夠看出,除不開的狀況下會選擇中間兩個數較前一個,做爲中間數,進行二分的
pay()
始終是處於劃紅線,我又想過在各個子類裏面分別實現接口,雖然pay()
沒有被劃紅線,可是聲明引用變量,並指向子類的時候,又開始劃紅線了。想了想是本身沒有在StaffMember類裏面沒有實現接口,可是若是實現接口的話,這就不算是一種多態吧,兩種很混亂的經過接口實現的多態性,算是本身在嘗試道路上的荊棘吧,在StaffMemberen類實現接口就行,最後在產片代碼中進行聲明接口的引用變量,這樣就能夠在StaffMemberen內進行調用不一樣的對象,以及不一樣類型下的pay()
方法,實現接口內內的方法payday()
了。
問題2解決方案:對於此編程項目,着實費了很多功夫,遞減的順序在一開始就想到了把放在前面的內容放到後面就行了,可是想了想就改一個符號是不太可能吧,因此,本身就不斷在下面改來改去的,可是始終達不到所要求的目的,經過問同窗如何解決的,原來本身最原先的想法是正確的。感受題目騙人,不帶出這種從新編寫的,僅僅修改一個符號就能夠了。
數組
- 錯題1:Inheritance through an extended (derived) class supports which of the following concepts?(繼承經過擴展(派生)類來支持下列概念中的哪個?)
- A.interfaces
- B.modulary
- C.information hiding
- D.code reuse(代碼複用)
- E.correctness
- 錯題2:Which of the following is true regarding Java classes?(對於Java類,下面哪一個選項是正確的?)
- A.All classes must have 1 parent but may have any number of children (derived or extended) classes(全部的類都必須有一個父類,可是可能有任意數量的子類(派生的或擴展的)類。)
- B.All classes must have 1 child (derived or extended) class but may have any number of parent classes
- C.All classes must have 1 parent class and may have a single child (derived or extended) class
- D.All classes can have any number (0 or more) of parent classes and any number of children (derived or extended) classes
- E.All classes can have either 0 or 1 parent class and any number of children (derived or extended) classes
- 錯題3:A variable declared to be of one class can later reference an extended class of that class. This variable is known as(聲明爲一個類的變量稍後能夠引用該類的擴展類。這個變量被稱爲。)
- A.protected
- B.derivable
- C.cloneable
- D.polymorphic(多態)
- E.none of the above, a variable declared to be of one class can never reference any other type of class, even an extended class
- 錯題4:In order to determine the type that a polymorphic variable refers to, the decision is made(爲了肯定多態變量所指的類型,作出了決策。)
- A.by the programmer at the time the program is written
- B.by the compiler at compile time
- C.by the operating system when the program is loaded into memory
- D.by the Java run-time environment at run time(經過運行時的Java運行環境。)
- E.by the user at run time
- 錯題5:Using the reserved word, super, one can(使用保留字super,能夠)
- A.access a parent class'constructor(s)
- B.access a parent class'methods and instance data
- C.access a child class'constructor(s)
- D.access a child class'methods and instance data
- E.none of the above
- 錯題6:If you instantiate an Abstract class, the class or object you wind up with(若是您實例化一個抽象類、類或對象會獲得)
- A.is also an Abstract class
- B.is a normal class
- C.is an Interface
- D.is a reference to an Object
- E.can't exist you cannot instantiate an Abstract class(不能存在不能實例化一個抽象類)
錯誤解析:您只能實例化具體的類而不是抽象類。可是您能夠擴展抽象類和接口。數據結構
- 抽象類實際上是能夠實例化的,可是他的實例化方式不是經過new方式來建立對象,而是經過父類的引用來指向子類的實例來間接地實現父類的實例化(由於子類要實例化前,必定會先實例化他的父類。這樣建立了繼承抽象類的子類的對象,也就把其父類(抽象類)給實例化了).可是:接口是不能被實例化的(接口壓根就沒有構造函數)。
- 錯題7:A derived class has access to all of the methods of the parent class, but only the protected or public instance data of the parent class.(派生類能夠訪問父類的全部方法,但只訪問父類的受保護或公共實例數據。)
- A.true
- B.false
- 錯題8:If class AParentClass has a protected instance data x, and AChildClass is a derived class of AParentClass, then AChildClass can access x but can not redefine x to be a different type.(若是類AParentClass有一個受保護的實例數據x,而AChildClass是一個派生類的AParentClass,那麼AChildClass能夠訪問x,但不能從新定義x爲另外一種類型。)
- A.true
- B.false
本週結對學習狀況
20172304方藝雯
20172323王禹涵
1.後綁定(動態綁定)
2.繼承與接口實現的多態性
3.排序(選擇排序法和插入排序法)
4.搜索(線性搜索和二分搜索)
學習第十章的時候,經過老師給的書上例題代碼,能夠省去很多時間去理解多態性有關的知識點,可是,本週發佈了一個感受很好作的(實則並非的)一個小組項目-四則運算的編寫,可是細細思考了一下,忽然發現,本週好忙啊~~關於多態性的問題尚未深刻思考的同時還要編寫項目的UML類圖。好在還有一個五一小假能夠忙裏偷閒!
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 136/136 | 1/1 | 15/15 | |
第二週 | 570/706 | 1/2 | 20/35 | |
第三週 | 613/1319 | 1/3 | 23/58 | |
第四周 | 1249/2568 | 1/5 | 30/88 | |
第五週 | 904/3472 | 1/6 | 30/118 | |
第六週 | 540/4012 | 1/7 | 30/118 | |
第七週 | 826/4838 | 1/7 | 30/178 | |
第八週 | 925/5763 | 2/9 | 45/223 |