。。。。
abstract class Water {
public abstract void Water(); }
interface Filter {
public abstract void Filter(); }
interface Buffer {
public abstract void Buffer(); }
interface Heat {
public abstract void Heat(); }
interface Sugar {
public abstract void Sugar(); }
class Water1 extends Water implements Filter,Buffer {
public void Water(){ System.out.println(\水1的制造过程:\\n\ }
public void Filter(){ System.out.println(\水已经过滤\\n\ }
public void Buffer(){ System.out.println(\水已经缓冲\\n\ } }
class Water2 extends Water implements Buffer {
public void Water(){ System.out.println(\水2的制造过程:\\n\ }
public void Buffer(){ System.out.println(\水已经缓冲\\n\ } }
class Water3 extends Water implements Filter {
public void Water(){ System.out.println(\水3的制造过程:\\n\ }
public void Filter(){ System.out.println(\水已经过滤\\n\ } }
public class b01 {
public static void main(String args[]){ Water1 a = new Water1(); Water2 b = new Water2(); Water3 c = new Water3(); a.Water(); a.Buffer(); a.Filter(); b.Water(); b.Buffer(); c.Water(); c.Filter(); } }
【练习题】26.综合题
定义一个抽象的\类,有姓名,年龄,性别等成员变量
1. 要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有),再通
过GetXXX()和SetXXX()方法对各变量进行读写。具有一个抽象的play()方法,该方法不返回任何值,同时至少定义两个构造方法。Role类中要体现出this的几种用法。
2. 从Role类派生出一个\类,该类具有Role类的所有成员(构
造方法除外),并扩展 salary成员变量,同时增加一个静态成员变量“职工编号(ID)”。同样要有至少两个构造方法,要体现出this和super的几种用法,还要求覆盖play()方法,并提供一个final sing()方法。 3. \类继承\类,有一个final成员变量\
4. 在main()方法中制造Manager和Employee对象,并测试这些对象的方法
abstract class Role {
private int age;
private String name; public Role(int a){ this.setAge(a); }
public Role(String b){ this.setName(b);
}
public Role(int a,String b){ this(a); this.setName(b); }
public void setAge(int a){ age = a; }
public void setName(String b){ name = b; }
public int getAge(){ return age; }
public String getName(){ return name; }
public abstract void play(); }
class Employee extends Role {
private int salary;
private static String ID;
public Employee(int a,String i){ super(a); setID(i); }
public Employee(int a,String b,int s,String i){ this(a,i); this.setName(b); setSalary(s); }
public void setID(String i){ ID = i; }
public String getID(){ return ID; }
public void setSalary(int s){ salary = s; }
public int getSalary(){ return salary; }
public void play(){ System.out.println(\职工信息:\\n**********************\ +\姓名:\年龄:\薪水:\ +getSalary()+\元\\n编号:\ }
public final void sing(){ System.out.println(\ } }
class Manager extends Employee {
private final String vehicle;
public Manager(int a,String b,int s,String i,String vehicle){ super(a,b,s,i); this.vehicle = vehicle; }
public void play(){ System.out.println(\领导信息:\\n**********************\ +\姓名:\年龄:\薪水:\ +getSalary()+\元\\n编号:\交通工具\ } }
public class b01 {
public static void main(String args[]){ Employee emp = new Employee(25,\韩寒\ emp.getAge(); emp.getName(); emp.getSalary(); emp.getID(); emp.play(); Manager man = new Manager(27,\郭\宝时捷\ man.getAge(); man.getName(); man.getSalary(); man.getID(); man.play(); } }
【练习题】27.综合题 题目:品尝饮料 时间:2006-06-18 一、 语言和环境
1. 实现语言:Java
2. 环境要求:JDK1.4或以上版本及其联机帮助文档 二、 要求
1、使用命令行参数(饮料类型),输出该饮料类型的味道,如:当命令行参
数为1时,结果见图1:
2、如果没有该种饮料,结果见如图2:
图2 三、 推荐实现步骤
1、建立一个Java抽象类Drink,应当:
a、声明一个抽象方法taste(),该方法负责输出饮料的味道; b、声明int型常量来代表不同的饮料类型(咖啡、啤酒、牛奶),如: c、声明静态工厂方法getDrink(int drinkType),根据传入的参数创建
不同的饮料对象,并返回该对象,建议使用switch语句。该方法要求声明DrinkNotFoundException,当没有相对应的饮料类型时,抛出该异常。
2、建立Drink的具体子类:
a、分别建立Drink的子类:Coffee(代表咖啡),Beer(代表啤酒),Milk(代表牛奶);
b、实现taste()方法,要求在控制台打印各自的味道特征。 3、建立异常类DrinkNotFoundException a、继承Exception
b、在Drink的方法getDrink(int drinkType)中声明引发DrinkNotFoundException异常,当传入的参数没有相对应的饮料类型时,抛出异常。
c、在使用getDrink方法的类中捕捉该异常。 4、建立Test测试类,测试以上内容的正确性
a、编写main方法,通过命令行传参的方式传入某种饮料的类型。 b、在main方法中,调用Drink类的getDrink方法,获得相应的饮料对象。注意捕获DrinkNotFoundException。
c、然后调用该饮料对象的taste()方法,输出该饮料的味道。 5、编译程序,并运行。 四、 注意事项
1、仔细审题,把题目要求理解准确; 2、请注意多态性的运用;
3、请注意代码的书写、命名符合规范,应有适当的注释。