【实验十三】
2、分析程序结果并验证
abstract class a1{
abstract int add(int x,int y,int z);
}
interface a2 {
int add(int x,int y);
}
class PacDemo extends a1 implements a2 {
public int add(int x,int y,int z) {
int sum;sum=x+y+z;
return sum;
}
public int add(int x,int y) {
int sum;sum=x+y+1000;
return sum;
}
public static void main(String args[]) {
PacDemo calc=new PacDemo();
int sum=calc.add(10,20);
System.out.println("the addition is:"+sum);
int sum2=calc.add(10,20,30);
System.out.println("the addition is:"+sum2);
}
}
the addition is:1030
the addition is:60
3、定义一个接口CanFly,描述会飞的方法public void fly();分别定义类飞机和鸟,实现CanFly接口。定义一个测试类,测试飞机和鸟,在main方法中创建飞机对象和鸟对象,让飞机和鸟起飞。
interface Canfly{
public abstract void fly();
}
public class Brid implements Canfly{
public void fly() {
System.out.println("鸟会飞");
}
}
public class plan implements Canfly{
public void fly() {
System.out.println("飞机会飞");
}
}
public class Main {
public static void main(String args[]) {
plan p = new plan();
Brid b = new Brid();
p.fly();
b.fly();
}
}
4、P126 任务4-1 USB接口程序。
interface usb {
void turnon();
void turnoff();
}
class jianpan implements usb{
public void turnon() {
System.out.println("键盘打开了");
}
public void turnoff() {
System.out.println("键盘关上了");
}
}
class shubiao implements usb{
public void turnon() {
System.out.println("鼠标打开了");
}
public void turnoff() {
System.out.println("鼠标关上了");
}
}
class erji implements usb{
public void turnon() {
System.out.println("耳机打开了");
}
public void turnoff() {
System.out.println("耳机关上了");
}
}
public class Computer {
usb[] u = new usb[4];
public void add(usb usb1) {
for(int i = 0;i<u.length;i++) {
if(u[i] == null) {
u[i] = usb1;
break;
}
}
}
public void on() {
for(int i=0;i<u.length;i++) {
if(u[i] !=null) {
u[i].turnon();
}
}
System.out.println("开机");
}
public void off() {
for(int i=0;i<u.length;i++) {
if(u[i] !=null) {
u[i].turnoff();
}
}
System.out.println("关机");
}
}
public class Mian {
public static void main(String arg[]) {
Computer c =new Computer();
c.add(new jianpan());
c.add(new shubiao());
c.add(new erji());
c.on();
System.out.println();
c.off();
}
}
5、小狗在不同环境条件下可能曾现不同的状态,小狗通过调用cry()方法体现自己的当前的状态。要求用接口封装小狗的状态。具体要求如下。
(1)编写一个接口DogState,该接口有一个名字为void showState()的方法。
(2)编写Dog类,该类中有一个DogState接口声明的变量state。另外,该类有一个cry()方法,在该方法中让接口state回调showState()方法。即Dog对象通过cry()方法来体现自己目前的状态。
(3)编写若干个实现DogState接口的类,负责刻画小狗的各种状态。
(4)编写主类,在主类中用Dog创建小狗,并让小狗调用cry方法体现自己的状态。程序运行参考效果如图7.12所示。
程序模板
请按模板要求,将【代码】替换为Java程序代码。
CheckDogState.java
interface DogState {
public void showState();
}
class SoftlyState implements DogState {
public void showState(){
System.out.pringtln(“在主人面前,听主人的命令”);
}
【代码1】 //重写public void showState()
}
class MeetEnemyState implements DogState {
public void showState(){
System.out.pringtln(“遇到敌人狂叫,并冲向去狠咬敌人”);
}
【代码2】 //重写public void showState()
}
class MeetFriendState implements DogState {
public void showState(){
System.out.pringtln(“遇到朋友晃动尾巴,表示欢迎”);
}
【代码3】 //重写public void showState()
}
class Dog {
DogState state;
public void cry() {
state.showState();
}
public void setState(DogState s) {
state = s;
}
}
public class E {
public static void main(String args[]) {
Dog yellowDog =new Dog();
yellowDog.setState(new SoftlyState());
yellowDog.cry();
yellowDog.setState(new MeetEnemyState());
yellowDog.cry();
yellowDog.setState(new MeetFriendState());
yellowDog.cry();
}
}