Java面向对象编程练习题答案0要点 下载本文

内容发布更新时间 : 2024/5/28 18:14:31星期一 下面是文章的全部内容请认真阅读。

。。。。

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、请注意代码的书写、命名符合规范,应有适当的注释。