第五章习题

本文介绍了一种基于抽象类的打印机类设计模式,并通过针式打印机、喷墨打印机及激光打印机的具体实现进行了演示。此外,还展示了一个简单的测试类来验证不同打印机的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package page2_149;
/**
 * 打印机类
 * @author win8
 *
 */
public abstract class Printer {


public abstract void print();
}





package page2_149;

/**
 * 针式打印机类
 * @author win8
 *
 */
public class DotMatrixPrinter extends Printer {


@Override
public void print() {


System.out.println("针式打印机正在打印");


}


}




package page2_149;
/**
 * 喷墨打印机类
 * @author win8
 *
 */
public class InkpetPrinter extends Printer {


@Override
public void print() {


System.out.println("喷墨式打印机正在打印");


}


}


package page2_149;
/**
 * 激光打印机类
 * @author win8
 *
 */
public class LaserPrinter extends Printer {


@Override
public void print() {
System.out.println("激光打印机正在打印");


}


}


package page2_149;
/**
 * 测试类
 * @author win8
 *
 */
public class Test {
public static void main(String[] args) {
Printer p = new DotMatrixPrinter();
p.print();
Printer p1 = new InkpetPrinter();
p1.print();
Printer p2 = new LaserPrinter();
p2.print();
}

}





package page2_149;


public abstract class Niuben {
        private String name;
        private String likedo;
        


public String getName() {
return name;
}






public void setName(String name) {
this.name = name;
}






public String getLikedo() {
return likedo;
}






public void setLikedo(String likedo) {
this.likedo = likedo;
}






public abstract void print();
}



package page2_149;


public  class Wang extends Niuben {

   public Wang() {
    super.setName("王小强");
    super.setLikedo("喜欢吃四川菜,练太极拳");
   
   }


@Override
public void print() {
  System.out.println("我叫"+this.getName()+","+"我是牛犇的中国朋友,"+"我"+getLikedo()+".");
  

}


}



package page2_149;


public class John extends Niuben {


public John() {
super.setName("约翰");
    super.setLikedo("喜欢吃砒霜,打橄榄球");
}
@Override
public void print() {
// TODO Auto-generated method stub
System.out.println("我叫"+this.getName()+","+"我是牛犇的美国朋友,"+"我"+getLikedo()+".");
}


}


package page2_149;


public class Master {
public Niuben come(int num) {
if(num==1) {
return new Wang();
}else if(num==2) {
return new John();
}
return null;

}

public void serve(Niuben f) {
if(f instanceof Wang) {
Wang w=(Wang)f;
w.print();
}else if(f instanceof John){
John j=(John)f;
 j.print();
}
}

}



package page2_149;


import java.util.Scanner;


public class Test2 {
    public static void main(String[] args) {
        Scanner input =new Scanner(System.in);
        System.out.println("招待的是(1,中国朋友    2,美国朋友)");
          int num=input.nextInt();
          Master m=new Master();
          m.serve(m.come(num));
          }
    }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值