20145217 《Java程序設計》第4周學習總結(2)
教材學習內容總結
上章講過繼承,但繼承不能亂用,悠閑先考慮接口而不是繼承。本章即使對接口應用的論述,探討如何改進和設計,了解繼承、接口與多態的用於不用之處。
7.1接口
類要操作接口,必須使用implements關鍵字。一是操作接口中定義方法,二是再度將該方法標示為abstract。
課本中用ocean.java的寫法上讓我們體會了繼承和接口的區別。ocean.java用接口來寫如下:
- 1.Ocean.java
package ocean;
javascript
public class Ocean {
public static void main(String[] args) {
doSwim(new Anemonefish("尼莫"));
doSwim(new Shark("爛泥"));
doSwim(new Humen("姬絲汀"));
doSwim(new Submarine("黃色一號"));
}
static void doSwim(Swimmer swimmer){
swimmer.swim();
}
}
- 2.Swimmer.java
package ocean;
public interface Swimmer {
public abstract void swim();
}
- 3.Submarine.java、Anemonefish.java、Humen.java和Shark.java(類似不一一給出)
package ocean;
public class Submarine implements Swimmer {
private String name;
public Submarine(String name){
this.name=name;
}
public String getName(){
return name;
}
@Override
public void swim(){
System.out.printf("潛水艇%s潛行%n", name);
}
}
- 4.Fish.java
package ocean;
public abstract class Fish implements Swimmer {
protected String name;
public Fish(String name){
this.name=name;
}
public String getName(){
return name;
}
@Override
public abstract void swim();
}
四部分打包后才會運行成功,運行結果如下:
運用接口能夠滿足需求變化,子類不能有多個父類但是程序可以有多個接口,因此面對即可以飛又可以游泳的飛魚可以更好地解決。
6.2語法細節
-
1.接口的默認為public abstract。
-
2.在撰寫java程序時,經常會有臨時繼承某個類或操作某個接口並建立實力的需要。由於這類子類或借口操作類只是用一次,不需要為這些類定義名稱,這時可以使用匿名內部淚來解決。
-
3.enum:定義枚舉常數。
上傳git:
教材學習中的問題和解決過程
教材這部分是對程序設計邏輯化詳解,需要多加練習,很多東西都是在敲完代碼,運行程序成功后懂得的。
代碼調試中的問題和解決過程
教材中的很多代碼都是一半,真正實現需要自己補充好,在這方面也花掉了我大部分時間,但是總而言之很有收獲。這倆節內容真心難,到現在也沒學懂。現在學習還是比較迷茫的,只敲代碼真的只能做到復制和讀懂層面,並不能完全掌握,看來要自己解決一些問題才能真正掌握起來吧。
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第三周 | 300/600 | 2/6 | 20/50 | |
第四周 | 300/900 | 2/8 | 16/66 |