需求说明:原始的手机,可以发短信,通电话。随着发展,手机增加了音频、视频播放、拍照、上网功能。按照下面的类图进行程序设计:首先,编写类及接口,参照以下类的结构图;其次,编写测试类,让普通手机播放音频、发信息和通电话,让智能手机上网、播放视频、照相、发彩信和视频通电话。
//手机类
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();
}