1. 程式人生 > 其它 >Java程式碼(匿名內部類的使用二)

Java程式碼(匿名內部類的使用二)

技術標籤: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();
}