201521123095 《Java程序設計》第6周學習總結

1.本週學習總結

1.1 面向對象學習暫告一段落,請使用思惟導圖,以封裝、繼承、多態爲核心概念畫一張思惟導圖,對面向對象思想進行一個總結。

注1:關鍵詞與內容不求多,但概念之間的聯繫要清晰,內容覆蓋面向對象的核心內容便可。
注2:顏色要少、連線不要複雜,必要的時候要在連線上進行說明。
編程

2. 書面做業

1.clone方法

1.1 Object對象中的clone方法是被protected修飾,在自定義的類中覆蓋clone方法時須要注意什麼?

須要注意的是,若是用protected修飾,那麼只能被同包內的類和子類所訪問,Object對象中的clone方法是被protected修飾,須要修改爲public修飾。在自定義類中覆蓋clone的方法的名稱必須和Object.clone中名稱、參數、返回類型相等,方法的覆蓋只能存在於子類和父類之間,在同一個類中方法被重載不能覆蓋。

1.2 本身設計類時,通常對什麼樣的方法使用protected進行修飾?以做業Shape爲例說明。

通常對於在一個包的不一樣類中,一個方法須要被同一個包中的不一樣類中進行屢次調用的時候則須要進行protected進行修飾,即便不是同一個類,只要是在同一個包內就可使用,使用protected進行修飾還能夠不讓其餘類中調用該方法,起到保護做用。
在代碼Shape中,Shape會有相似於Circle,Rectangle的子類,他們繼承了Shape類的getPerimeter()與getArea()兩種方法,若是不想讓其餘類調用到這兩個方法,則須要用到protected。

1.3 在test1包中編寫簡單的Employee類,在test2包中新建一個TestProtected類,並在main中嘗試調用test1包中的Employee的clone方法克隆一個新對象,可否成功?爲何?

不能成功,由於Employee類用的是protected修飾的,而這兩個類並不在一個包內

2.使用匿名類與Lambda表達式改寫題集面向對象2-進階-多態接口內部類的題目5-2

僅需粘貼關鍵代碼與運行結果,圖片不要太大。ide

匿名內部類

  NameComparator a = new NameComparator();
Arrays.sort(persons,a);
for(PersonSortable2 personSortable2 : persons){
    System.out.println(personSortable2);
}
AgeComparator b = new AgeComparator();
Arrays.sort(persons,b);
for(PersonSortable2 personSortable2 : persons){
    System.out.println(personSortable2);
}    
Lamda表達式

Arrays.sort(persons,(o1,o2)->o1.getName().compareTo(o2.getName()));
Arrays.sort(persons,(o1,o2)->o1.getAge()-o2.getAge();

運行結果
函數

3.分析下列代碼,回答shapeComparator所指向的對象與Comparator接口有什麼關係?

Comparator<Shape> shapeComparator = new  Comparator<Shape>() {  
     @Override  
     public int compare(Shape o1, Shape o2) {  
         //你的代碼     
      }         
};  

shapeComparator所指的對象可以實現Comparator接口,而後接下去能夠直接使用Arrays.sort()進行排序。

4.GUI中的事件處理

4.1 寫出事件處理模型中最重要的幾個關鍵詞。學習

事件對象、事件源、事件監聽器

4.2 使用代碼與註釋,證實你理解了事件處理模型。ui

JButton buttonSortSaled = new JButton("\u6309\u9500\u91CF"); //新建按鈕及事件源對象
                buttonSortSaled.addActionListener(new ActionListener() {//新建監聽器
                    public void actionPerformed(ActionEvent arg0) {//事件對象
                    curOrder="saled";
                    sortCommand(curOrder,bufferList);
                    generateTextContentFromItem(bufferList);
                    showOnText(textBuffer, textAreaFrame);
                    
                }
            });

5.結對編程:面向對象設計(大做業2-很是重要,未完成-2)

繼續完善上週的項目做業。考覈點以下:
5.1 嘗試使用圖形界面改寫。
5.2 給出兩人在碼雲上同一項目的提交記錄截圖。
5.3 與上週相比,項目的主要改動是什麼?設計

參考資料:
結對編程參考資料
使用Processon畫圖
視頻-使用Netbeans編寫GUI
重要:Swing實驗參考資料
JTable用法,用於呈現表格數據
Swing相關文章code

3. 碼雲上代碼提交記錄及PTA實驗總結

題目集:jmu-Java-04-面向對象2-進階-多態接口內部類orm

3.1. 碼雲代碼提交記錄

在碼雲的項目中,依次選擇「統計-Commits歷史-設置時間段」, 而後搜索並截圖
視頻

3.2. PTA實驗

函數(選作:4-1)、編程(5-3, 5-4)
必定要有實驗總結對象

繼續學習comparable與comparator
5.3用 ArrayIntegerStack 類,IntegerStack進行接口註釋,要判斷棧空和棧滿
5.4.靜態內部類不會編寫
相關文章
相關標籤/搜索