日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

201521123017 《Java程序设计》第4周学习总结

發(fā)布時(shí)間:2023/12/13 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 201521123017 《Java程序设计》第4周学习总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 本周學(xué)習(xí)總結(jié)





2. 書面作業(yè)

Q1.注釋的應(yīng)用
使用類的注釋與方法的注釋為前面編寫的類與方法進(jìn)行注釋,并在Eclipse中查看。(截圖)

?



Q2.面向?qū)ο笤O(shè)計(jì)(大作業(yè)1,非常重要)
2.1 將在網(wǎng)上商城購物或者在班級博客進(jìn)行學(xué)習(xí)這一過程,描述成一個(gè)故事。(不得少于50字,參考QQ群中PPT的范例)
2.2 通過這個(gè)故事我們能發(fā)現(xiàn)誰在用這個(gè)系統(tǒng),系統(tǒng)中包含的類及其屬性方法,類與類之間的關(guān)系。嘗試找到這些類與屬性,并使用思維導(dǎo)圖描述類、屬性、方法及類與類之間的關(guān)系。
2.3 嘗試使用Java代碼實(shí)現(xiàn)故事中描述的這一過程(不必很完善),將來要在這個(gè)基礎(chǔ)上逐漸完善、擴(kuò)展成一個(gè)完整的面向?qū)ο蟮南到y(tǒng)。(可選:加分)

?
(2.1)網(wǎng)上商城購物:買家首先輸入所要的商品,在Shopping類在中,找到商品這個(gè)屬性中(用Commodity類定義的商品屬性,包含商品的名稱,價(jià)格,商品的大小及商品的所在地址),賣家觀看此商品的介紹,若為所需物品,則加入購物車,用到Shopping類中的shopcar屬性(Shopcar類定義,包含所加入的商品的單價(jià),購買的個(gè)數(shù)及存放商品的地址),在購物車中查看訂單情況,若發(fā)現(xiàn)不需要,可以刪去訂單,計(jì)算總共的話費(fèi)時(shí),在Shopping類的total方法中計(jì)算,各類商品的單價(jià)*個(gè)數(shù)總和,返回該值顯示給買家看,買家付相等金額后完成購物過程
?
(2.2)



Q3.ManagerTest.zip代碼分析
分析ManagerTest.zip中的代碼,回答幾個(gè)問題:
3.1 在本例中哪里體現(xiàn)了使用繼承實(shí)現(xiàn)代碼復(fù)用?回答時(shí)要具體到哪個(gè)方法、哪個(gè)屬性。
3.2 Employee類及其子類Manager都有g(shù)etSalary方法,那怎么區(qū)分這兩個(gè)方法呢?
3.3 文件第26行e.getSalary(),到底是調(diào)用Manager類的getSalary方法還是Employee類的getSalary方法。
3.4 Manager類的構(gòu)造函數(shù)使用super調(diào)用父類的構(gòu)造函數(shù)實(shí)現(xiàn)了代碼復(fù)用,你覺得這樣的有什么好處?為什么不把父類構(gòu)造函數(shù)中的相關(guān)代碼復(fù)制粘貼到Manager的構(gòu)造函數(shù)中,這樣看起來不是更直觀嗎?

?
(3.1)class Manager extends Employee()類,Manager繼承Employee;Manager屬性比Employee多了bonus,private double bonus;定義構(gòu)造函數(shù)時(shí)public Manager(String n, double s, int year, int month, int day),由于Manager的全部屬性除bonus以外其他都一樣,故可以繼承父類的構(gòu)造函數(shù)來賦值,用super(),但要放在構(gòu)造函數(shù)第一行才行;在調(diào)用函數(shù)時(shí),Manager類中方法,public double getSalary(),覆蓋Employee的方法getSalary(),Manager類中g(shù)etSalary()中還有加入bonus
?
(3.2)主要區(qū)別是有無bonus,有bonus則是Manager類中的方法getSalary(),無則是Employee類的方法getSalary()
?
(3.3)調(diào)用Employee類的getSalary方法,定義boss時(shí),boss.setBonus(5000)已經(jīng)將bonus帶入getSalary()中計(jì)算,再將boss賦給staff[0],得到的獎金已是用Manager類的getSalary方法計(jì)算過的,調(diào)用時(shí)的是Employee類的getSalary方法
?
(3.4)可以省略與父類中相同的屬性的構(gòu)造函數(shù)的編寫,節(jié)約成本,簡潔代碼;復(fù)制過去雖然直觀但是會使執(zhí)行時(shí)間過長,運(yùn)行過慢


Q4.Object類
4.1 編寫一個(gè)Fruit類及屬性String name,如沒有extends自任何類。使用System.out.println(new Fruit());是調(diào)用Fruit的什么方法呢?該方法的代碼是從哪來的?嘗試分析這些代碼實(shí)現(xiàn)了什么功能?
4.2 如果為Fruit類添加了toString()方法,那么使用System.out.println(new Fruit());調(diào)用了新增的toString方法。那么其父類中的toString方法的代碼就沒有了嗎?如果同時(shí)想要復(fù)用其父類的toString方法,要怎么操作?(使用代碼演示)
4.3 Fruit類還繼承了Object類的eqauls方法。嘗試分析其功能?自己編寫一個(gè)equals方法覆蓋父類的相應(yīng)方法,功能為當(dāng)兩個(gè)Fruit對象name相同時(shí)(忽略大小寫),那么返回true。(使用代碼證明你自己覆蓋的eqauls方法是正確的)
4.4 在4.3的基礎(chǔ)上使用ArrayList fruitList存儲多個(gè)fruit,要求如果fruitList中已有的fruit就不再添加,沒有的就添加進(jìn)去。請編寫相關(guān)測試代碼。并分析ArrayList的contatins方法是如何實(shí)現(xiàn)其功能的?

?
(4.1)System.out.println(new Fruit());語句調(diào)用了Fruit的構(gòu)造函數(shù);在未寫構(gòu)造函數(shù)時(shí),系統(tǒng)會默認(rèn)調(diào)用構(gòu)造函數(shù);輸出類名加地址形式
?
(4.2)新增的toString方法只是將String類中toString覆蓋掉,并非沒有,可以查找String類中toString方法的源代碼,在類中輸出

?
(4.3)eqauls方法是比較兩個(gè)對象的內(nèi)容是否相同(有分大小寫),若相同,則返回true,否則返回false

public boolean equals(String name1,String name2) {if(name1.equalsIgnoreCase(name2)) return true;//使用String類中的.equalsIgnoreCase()函數(shù),忽略大小寫else return false; }

?
(4.4)代碼:

public class Main {public static void main(String[] args) {ArrayList<Fruit> fruitList=new ArrayList<Fruit>();//建立ArrayList<Fruit> fruitListfruitList.add(new Fruit());//加入new Fruit()Fruit a=new Fruit();if(!fruitList.contains(a)) fruitList.add(a);//若fruitList沒有a,則加入a,否則不操作} }

ArrayList的contatins使用indexOf(),返回字符串在父串中首次出現(xiàn)的位置,若位置是大于等于0,返回true,否則返回false,ArrayList的contatins源代碼



Q5.代碼閱讀:PersonTest.java(abstract、多態(tài))
5.1 畫出類的繼承關(guān)系
5.2 讀懂main函數(shù),將自己推測的出代碼運(yùn)行結(jié)果與真正運(yùn)行結(jié)果進(jìn)行比較。嘗試分析原因
5.3 子類中里面使用了super構(gòu)造函數(shù),作用是什么?如果將子類中的super構(gòu)造函數(shù)去掉,行不行?
5.4 PersonTest.java中的代碼哪里體現(xiàn)了多態(tài)?你覺得多態(tài)有什么好處?多態(tài)和繼承有什么關(guān)系嗎?

?
(5.1)類的繼承關(guān)系

?
(5.2)建立Person()數(shù)組person[],長度為4,peoples[0]=new Employee,peoples[1] = new Student,peoples[2] = new Programmer,peoples[3] = new Manager,接著根據(jù)年齡大小,由小到大排序輸出,與運(yùn)行結(jié)果比較相同
?
(5.3)使用super方法,可以調(diào)用在子類中方法與參數(shù)相同的父類的屬性和方法;不行,若是去掉,則無法繼承父類中的屬性或方法,用不了,導(dǎo)致那些繼承的屬性用的是默認(rèn)值
?
(5.4)體現(xiàn)多態(tài)的代碼:

peoples[0] = new Employee("zhang", "136", "1360", "1360@mail.com", 21, "female", 1000.0); peoples[1] = new Student("wang", "110", "15959", "15959@163.com", 18, "male", "1"); peoples[2] = new Programmer("Gates", "usa", "911", "911@com", 59, "male", 100000.0, 50000.0); peoples[3] = new Manager("Clark", "GE", "111", "111@mail.com", 10, "mail", 90000.1, 12000.3);

創(chuàng)建父類的對象可以構(gòu)造多個(gè)不同的對象(不同的類),節(jié)約成本(例如求圓和長方形的面積和周長的和,可以創(chuàng)建一個(gè)父類class Shape(){},存放形狀屬性,繼承方法求面積和 和 周長和,這樣可以在圓和長方形中直接用super()引用這個(gè)方法,節(jié)約成本);只有子類繼承父類才能在建立對象時(shí),有多個(gè)不同的對象(多態(tài))



3. 碼云代碼提交記錄




4. PTA實(shí)驗(yàn)實(shí)驗(yàn)總結(jié)

?
(1)繼承父類,在子類中使用父類的屬性和方法,用extends,后接父類,在子類中,若子類要使用與父類同名卻不同效果的方法時(shí),可以自己編寫方法,在調(diào)用時(shí),會調(diào)用子類的方法,覆蓋掉父類的童,同名方法
?
(2)抽象類的定義,用到abstract關(guān)鍵字,且抽象類是必須被繼承的,在求周長和 和 面積和就可以在抽象類中定義,求周長和 和 面積和的方法代碼一樣,可以在抽象類Shape中編寫
?
(3)調(diào)用父類的構(gòu)造函數(shù)時(shí)(例如Manager和Employee,Manager比Employee多一個(gè)bonus,可以用super()來調(diào)用Employee的構(gòu)造函數(shù),前面的屬性一樣,只需再添加bonus的定義即可),要在子類的構(gòu)造函數(shù)的第一行

轉(zhuǎn)載于:https://www.cnblogs.com/gemola/p/6561596.html

總結(jié)

以上是生活随笔為你收集整理的201521123017 《Java程序设计》第4周学习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。