Java程式碼(匿名內部類的使用二)
阿新 • • 發佈:2020-12-24
技術標籤:java
需求說明:原始的手機,可以發簡訊,通電話。隨著發展,手機增加了音訊、視訊播放、拍照、上網功能。按照下面的類圖進行程式設計:首先,編寫類及介面,參照以下類的結構圖;其次,編寫測試類,讓普通手機播放音訊、發信息和通電話,讓智慧手機上網、播放視訊、照相、發彩信和視訊通電話。
//手機類
import com.homework.two2.TheftproofDoor;
public abstract class Handset {
//功能介面屬性 private TheakePicture theakePicture; private Network network; private PlayWiring playWiring; //普通屬性 private String type; private String brand; //抽象方法 public abstract void sendInfo(); public abstract void call(); //info方法 public void info(){ System.out.println("這是一款型號為:"+type+"的"+brand+"手機"); } //封裝setter,getter public TheakePicture getTheakePicture() { return theakePicture; } public void setTheakePicture(TheakePicture theakePicture) { this.theakePicture = theakePicture; } public Network getNetwork() { return network; } public void setNetwork(Network network) { this.network = network; } public PlayWiring getPlayWiring() { return playWiring; } public void setPalyWiring(PlayWiring playWiring) { this.palyWiring = palyWiring; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; }
}
//測試類
public class TestSendset {
public static void main(String[] args) {
//1.1構造普通手機 Handset h = new Handset() { @Override public void sendInfo() { System.out.println("文字資訊!"); } @Override public void call() { System.out.println("語言通話!"); } }; //1.2屬性賦值 h.setPlayWiring(new PlayWiring() { @Override public void play(String music) { System.out.println("播放音樂"+music); } }); h.setBrand("索尼"); h.setType("G502C"); //1.3測試輸出 h.info(); h.getPlayWiring().play("熱雪"); h.sendInfo(); h.call(); //2.1智慧手機 h=new Handset() { @Override public void sendInfo() { System.out.println("圖片和文字資訊"); } @Override public void call() { System.out.println("視訊通話"); } }; //2.2屬性賦值 h.setNetwork(new Network() { @Override public void networkConn() { System.out.println("連上5G網路"); } }); h.setPalyWiring(new PlayWiring() { @Override public void play(String content) { System.out.println("正在播放視訊"+content); } }); h.setTheakePicture(new TheakePicture() { @Override public void takePictare() { System.out.println("正在拍照"); } }); h.setBrand("T9100"); h.setType("HIC"); //1.3測試輸出 h.info(); h.getNetwork().networkConn(); h.getPalyWiring().play("小時代"); h.sendInfo(); h.call(); }
}
//介面Network
public interface Network {
void networkConn();
}
//介面PlayWiring
public interface PlayWiring {
void play(String content);//傳一個內容引數
}
//介面TheakePicture
public interface TheakePicture {
void takePictare();
}