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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

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

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

20145101《Java程序設(shè)計(jì)》第4周學(xué)習(xí)總結(jié)

教材學(xué)習(xí)內(nèi)容總結(jié)

第六章 繼承與多態(tài)

  • 繼承:避免多個(gè)類(lèi)間重復(fù)定義共同行為。

把相同代碼提升為父類(lèi)

運(yùn)用extends關(guān)鍵字的子類(lèi)會(huì)繼承擴(kuò)充父類(lèi)行為

多個(gè)類(lèi)中存在相同屬性和行為時(shí),將這些內(nèi)容抽取到單獨(dú)一個(gè)類(lèi)中,那么多個(gè)類(lèi)無(wú)需再定義這些屬性和行為,只要繼承單獨(dú)的那個(gè)類(lèi)即可。  

多個(gè)類(lèi)可以稱(chēng)為子類(lèi),單獨(dú)這個(gè)類(lèi)稱(chēng)為父類(lèi)或者超類(lèi)。  

子類(lèi)可以直接訪問(wèn)父類(lèi)中的非私有的屬性和行為。  

public class Game1Role {
private String name;
private int level;
private int blood;
public int getBlood(){
return blood;
}
public void setBlood(int blood) {
this.blood = blood;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

通過(guò)extends 關(guān)鍵字讓類(lèi)與類(lèi)之間產(chǎn)生繼承關(guān)系。

public class Game1SwordsMan extends Game1Role {
public void fight(){
System.out.println("揮劍攻擊");
}
}
  • 多態(tài):單一接口操作多種類(lèi)型的對(duì)象。
  • is-a關(guān)系定義:子類(lèi)只能繼承一個(gè)父類(lèi),“是一種”關(guān)系。

     public class RPG {public static void main(String[] args) {SwordsMan swordsMan = new SwordsMan();swordsMan.setName("Justin");swordsMan.setLevel(1);swordsMan.setBlood(200);Magician magician = new Magician();magician.setName("Monica");magician.setLevel(1);magician.setBlood(100);showBlood(swordsMan);showBlood(swordsMan);}static void showBlood(Role role) {System.out.printf("%s 血量 %d%n", role.getName(), role.getBlood());}}

在showBlood()方法中,通過(guò)Role類(lèi)型既可以操作SwordsMan對(duì)象,也可以操作Magician對(duì)象,這就是多態(tài)。

  • 重新定義:在繼承父類(lèi)之后,定義與父類(lèi)中相同的方法部署,但執(zhí)行內(nèi)容不同。

     public class RPG3{public static void main(String[] args){SwordsMan swordsMan = new SwordsMan();swordsMan.setName("Justin");swordsMan.setLevel(1);swordsMan.setBlood(200);Magician magician = new Magician();magician.setName("Monica");magician.setLevel(1);magician.setBlood(100);drawFight(swordsMan);drawFight(magician);}static void drawFight(Role role){System.out.print(role.getName());role.fight();}}
  • 抽象方法:如果某方法區(qū)塊中真的沒(méi)有任何程序代碼操作,可以使用abstract表示該方法為抽象方法,不用撰寫(xiě){ }區(qū)塊,直接“;”結(jié)束即可。

    含有抽象方法的類(lèi),一定要在class前標(biāo)示abstract;子類(lèi)如果繼承抽象類(lèi),意識(shí)繼續(xù)標(biāo)示abstract,另一種就是操作方法。

  • 繼承語(yǔ)法的細(xì)節(jié)

    super關(guān)鍵字表示父類(lèi)的意思。this變量代表對(duì)象本身。即super()和this()類(lèi)似,區(qū)別是,super從子類(lèi)中調(diào)用父類(lèi)的構(gòu)造方法,this()在同一類(lèi)內(nèi)調(diào)用其它方法。

    調(diào)用super()必須寫(xiě)在子類(lèi)構(gòu)造方法的第一行,否則編譯不通過(guò)。每個(gè)子類(lèi)構(gòu)造方法的第一條語(yǔ)句,都是隱含地調(diào)用super()。

     public class OceanWorld1Anemonefish extends OceanWorld1Fish {public OceanWorld1Anemonefish(String name) {super(name);}@Overridepublic void swim() {System.out.printf("小丑魚(yú) %s 游泳%n", name);}}

第七章 接口與多態(tài)

  • 接口:可以理解為一種特殊的類(lèi),里面全部是由全局常量(static final)和公共的抽象方法所組成。

  • 接口的定義格式:接口的數(shù)據(jù)成員,只允許被public, static, final修飾。
    接口的方法成員,只允許被public, abstract修飾。

    接口中的數(shù)據(jù)成員都為static final類(lèi)型,必須進(jìn)行初始化,且接口的數(shù)據(jù)成員的值不能被修改,允許省略static, final關(guān)鍵字。接口中的方法必須是“抽象方法”,不能有方法體,允許省略public及abstract關(guān)鍵字
  • 接口的實(shí)現(xiàn):
    接口不能用new運(yùn)算符直接產(chǎn)生對(duì)象,必須利用其特性設(shè)計(jì)新的類(lèi),再用新類(lèi)來(lái)創(chuàng)建對(duì)象
    與抽象類(lèi)一樣,接口要使用也必須通過(guò)子類(lèi),子類(lèi)通過(guò)implements關(guān)鍵字實(shí)現(xiàn)接口。

  • 接口的繼承:接口不能繼承一個(gè)抽象類(lèi),卻可以通過(guò)extends同時(shí)繼承于多個(gè)接口。

     import static java.lang.System.out;public class EnumGame {public static void main(String[] args) {play(EnumAction.RIGHT);play(EnumAction.UP);}public static void play(EnumAction action) {switch (action) {case STOP:out.println("播放停止動(dòng)畫(huà)");break;case RIGHT:out.println("播放向右動(dòng)畫(huà)");break;case LEFT:out.println("播放向左動(dòng)畫(huà)");break;case UP:out.println("播放向上動(dòng)畫(huà)");break;case DOWN:out.println("播放向下動(dòng)畫(huà)");break;}}}

教材學(xué)習(xí)中的問(wèn)題和解決過(guò)程

代碼調(diào)試中的問(wèn)題和解決過(guò)程

本周代碼托管截圖

其他(感悟、思考等,可選)

 java學(xué)習(xí)是一條長(zhǎng)久的道路,有坎坷,也有解決問(wèn)題的喜悅。這一周主要學(xué)習(xí)了六七章節(jié)的內(nèi)容,首先主要是一個(gè)RPG、SwordsMan這兩個(gè)程序,但其不僅僅是一個(gè)程序,是多個(gè)程序繼承在一起才能運(yùn)行,我們正一步一步在添磚加瓦,使程序日趨完善,功能越發(fā)強(qiáng)大。這周的學(xué)習(xí)讓我體會(huì)到j(luò)ava語(yǔ)言功能的多樣,操作接口、繼承類(lèi),有時(shí)相同的問(wèn)題可以有不同的方法解決,就需要多學(xué)習(xí),選擇效率高、準(zhǔn)確度高的方法來(lái)解決問(wèn)題。

學(xué)習(xí)進(jìn)度條

代碼行數(shù)(新增/累積)博客量(新增/累積)學(xué)習(xí)時(shí)間(新增/累積)重要成長(zhǎng)
目標(biāo)5000行30篇400小時(shí)
第一周200/2002/220/20
第二周200/4001/318/38
第三周200/6001/422/60
第四周200/8001/530/90

參考資料

  • Java學(xué)習(xí)筆記(第8版)
  • 《Java學(xué)習(xí)筆記(第8版)》學(xué)習(xí)指導(dǎo)

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

總結(jié)

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

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