Java基础巩固Day7作业

一、基础案例

题目1

一、 分析以下需求,并用代码实现:

  1. 定义Person类
    属性:姓名name、年龄age;
    方法:空参构造方法、满参构造方法、setXxx()、getXxx()、工作work。
  2. 根据人类,派生一个老师类Teacher
    重写工作方法(老师的工作是要好好讲课)。
  3. 根据人类,派生一个学生类Student
    重写工作方法(学生的工作是要好好学习)。
  4. 编写测试类分别对上述2类具体人物进行测试
  5. 要求运行结果:
    学生的工作要好好学习
    老师的工作要好好讲课
public class mainApp {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//1.1
		Teacher t = new Teacher();
		Student s = new Student();
		t.work();
		s.work();
	}
}
public class Person {
	private String name;
	private int age;
	public Person() {}
	public Person(String name,int age) {
		this.name=name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public void work() {
	}
}
public class Teacher extends Person{
	public Teacher() {}
	public Teacher(String name,int age) {
		super(name,age);
	}
	public void work() {
		System.out.println("老师的工作是要好好讲课");
	}
}
public class Student extends Person{
	public Student() {}
	public Student(String name, int age) {
		super(name,age);
	}
	public void work() {
		System.out.println("学生的工作是要好好学习");
	}
}

题目2

一、 分析以下需求,要求用代码实现:

  1. 定义手机类
    方法:打电话(手机的功能是给某人打电话)
  2. 根据手机类,派生一个新手机类
    重写打电话功能(新功能可以开启视频电话,同时要包含老功能)
  3. 编写测试类分别对上述2类手机进行测试
  4. 要求运行结果给林青霞打电话

开启视频功能
给林青霞打电话

public class mainApp {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Phone p = new Phone();
		NewPhone np = new NewPhone();
		p.call("李宗盛");
		np.call("李宗盛");
	}
}
public class Phone {
	public Phone() {}
	public void call(String name) {
		System.out.println("给"+name+"打电话");
	}
}
public class NewPhone extends Phone{
	public NewPhone() {}
	public void call(String name) {
		System.out.println("开启视频功能");
		System.out.println("给"+name+"打电话");
	}
}

题目3

一、 分析以下需求,并用代码实现:

  1. 定义Animal动物类
    方法:吃东西eat。
  2. 根据动物类,派生一个猫类Cat
    重写吃东西方法(猫吃鱼)。
  3. 根据动物类,派生一个狗类Dog
    重写吃东西方法(狗吃骨头)。
    狗还有一个特有方法,狗看门
  4. 根据动物类,派生一个猪类Pig
    重写吃东西方法(猪吃白菜)。
  5. 根据操作动物类AnimalOperator
    方法:调用动物的吃方法
  6. 编写测试类分别对上述4类事物AnimalOperator、Cat、Dog、Pig创建对象,调用吃东西功能,进行测试
  7. 要求运行结果:
    猫吃鱼
    狗吃骨头
    猪吃白菜
public class mainApp {
	public static void main(String[] args) {
		AnimalOperator ao = new AnimalOperator();
		Cat cat = new Cat();
		Dog dog = new Dog();
		Pig pig = new Pig();
		ao.useAnimal(cat);
		ao.useAnimal(dog);
		ao.useAnimal(pig);
	}
}
public class Animal {
	public Animal() {}
	public void eat() {
		System.out.println("动物吃东西");
	}
}
public class Cat extends Animal{
	public Cat() {}
	public void eat() {
		System.out.println("猫吃鱼");
	}
}
public class Pig extends Animal{
	public Pig() {}
	public void eat() {
		System.out.println("猪吃白菜");
	}
}
public class AnimalOperator {
	public void useAnimal(Animal animal) {
		animal.eat();
	}
}

二、扩展案例

题目1

一、 分析以下需求,并用代码实现:

  1. 定义Person类
    属性:
    姓名name、性别gender、年龄age、国籍nationality;
    方法:吃饭eat、睡觉sleep,工作work。
    2.根据人类,派生一个学生类Student
    增加属性:
    学校school、学号stuNumber;
    重写工作方法(学生的工作是学习)。
    3.根据人类,派生一个工人类Worker
    增加属性:
    单位unit、工龄workAge;
    重写工作方法(工人的工作是盖房子)。
    4.根据学生类,派生一个学生干部类 StudentLeader
    增加属性:
    职务job;
    增加方法:开会meeting。
    5.编写测试类分别对上述3类具体人物进行测试。
    6.要求运行结果:
    学生需要学习!
    工人的工作是盖房子!
    学生干部喜欢开会!
public class mainApp {
	public static void main(String[] args) {
		AnimalOperator ao = new AnimalOperator();
		Cat cat = new Cat();
		Dog dog = new Dog();
		Pig pig = new Pig();
		ao.useAnimal(cat);
		ao.useAnimal(dog);
		ao.useAnimal(pig);
	}
}
public class Person {
	private String name;
	private String gender;
	private int age;
	private String nationality;
	public Person() {}
	public Person(String name,int age,String gender,String nationality) {
		this.name=name;
		this.age = age;
		this.gender = gender;
		this.nationality = nationality;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public String getNationality() {
		return nationality;
	}
	public void setNationality(String nationality) {
		this.nationality = nationality;
	}
	public void work() {
	}
	public void eat() {}
	public void sleep() {}
}
public class Student extends Person{
	private String school;
	private String stuNumber;
	public Student() {}
	public Student(String name, int age,String gender,String nationality,String school,String stuNumber) {
		super(name,age,gender,nationality);
		this.school =school;
		this.stuNumber = stuNumber;
	}
	
	public String getSchool() {
		return school;
	}
	public void setSchool(String school) {
		this.school = school;
	}
	public String getStuNumber() {
		return stuNumber;
	}
	public void setStuNumber(String stuNumber) {
		this.stuNumber = stuNumber;
	}
	public void work() {
		System.out.println("学生需要学习!");
	}
}
public class Worker extends Person{
	private String unit;
	private int workAge;
	public Worker() {}
	
	public String getUnit() {
		return unit;
	}

	public void setUnit(String unit) {
		this.unit = unit;
	}

	public int getWorkAge() {
		return workAge;
	}

	public void setWorkAge(int workAge) {
		this.workAge = workAge;
	}

	public void work() {
		System.out.println("工人的工作是盖房子!");
	}
}
public class StudentLeader extends Student{
	private String job;
	public StudentLeader() {}
	public StudentLeader(String name, int age,String gender,String nationality,String school,String stuNumber,String job) {
		super(name,age,gender,nationality,school,stuNumber);
		this.job = job;
	}
	
	public String getJob() {
		return job;
	}
	public void setJob(String job) {
		this.job = job;
	}
	public void meeting() {
		System.out.println("学生干部喜欢开会!");
	}
}

题目2

一、 分析以下需求,并用代码实现

  1. 定义项目经理类
    属性:
    姓名 工号 工资 奖金
    行为:
    工作work
  2. 定义程序员类
    属性:
    姓名 工号 工资
    行为:
    工作work
  3. 要求:向上抽取一个父类,让这两个类都继承这个父类,共有的属性写在父类中,子类重写父类中的方法
  4. 编写测试类:完成这两个类的测试
public class mainApp {
	public static void main(String[] args) {
		Manager m = new Manager();
		m.work();
		Coder c = new Coder();
		c.work();
	}
}
public class Manager extends Employee{
	private String bonus;
	public Manager() {}
	public Manager(String name,String id,double salary,String bonus) {
		super(name,id,salary);
		this.bonus = bonus;
	}
	public String getBonus() {
		return bonus;
	}
	public void setBonus(String bonus) {
		this.bonus = bonus;
	}
	public void work() {
		System.out.println("经理在工作!");
	}
	
}
public class Employee {
	private String name;
	private String id;
	private double salary;
	public Employee() {}
	public Employee(String name,String id,double salary) {
		this.name=name;
		this.id = id;
		this.salary = salary;
		
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public double getSalary() {
		return salary;
	}
	public void setSalary(double salary) {
		this.salary = salary;
	}
	public void work() {
		System.out.println("员工在工作");
	}
}
public class Coder extends Employee{
	public Coder() {}
	public Coder(String name,String id,double salary) {
		super(name,id,salary);
	}
	public void work() {
		System.out.println("程序员在打代码!");
	}
}

题目3

一、 分析以下需求,并用代码实现

  1. 已知学生类和老师类如下:
    属性:
    姓名,年龄
    行为:
    吃饭
    老师有特有的方法:
    讲课
    学生有特有的方法:
    学习

  2. 要求:向上抽取一个父类,让这两个类都继承这个父类,共有的属性写在父类中,子类重写父类中的方法

  3. 编写测试类:完成这两个类的测试

public class mainApp {
	public static void main(String[] args) {
		Teacher t = new Teacher("郭德纲",40);
		Student s = new Student("郭麒麟",22);
		t.eat();
		t.Lecture();
		s.eat();
		s.learn();
	}
}
public class Person {
	private String name;
	private int age;
	public Person(){}
	public Person(String name, int age){
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public void eat() {
		System.out.println("吃饭");
	}
}
public class Teacher extends Person {
	public Teacher() {}
	public Teacher(String name, int age) {
		super(name,age);
	}
	public void eat() {
		System.out.println(this.getAge()+"岁的"+this.getName()+"老师在吃饭。");
	}
	public void Lecture() {
		System.out.println(this.getAge()+"岁的"+this.getName()+"老师在上课");
	}
}
public class Student extends Person{
	public Student() {}
	public Student(String name, int age) {
		super(name,age);
	}
	public void eat() {
		System.out.println(this.getAge()+"岁的"+this.getName()+"同学在吃饭。");
	}
	public void learn() {
		System.out.println(this.getAge()+"岁的"+this.getName()+"同学在学习");
	}
}

题目4

一、 分析以下需求,并用代码实现:
1.定义员工类:
属性:
工号,姓名
行为:
工作方法(用简单的输出语句模拟)
2.定义经理类:
属性:
工号,姓名,奖金
行为:
工作方法(管理员工,简单输出语句模拟)
3.定义服务员类:
属性:
工号,姓名
行为:
工作方法(为客户服务,简单输出语句模拟)
4.定义测试类:
分别创建经理类对象和服务员类对象
调用各自的工作方法
要求:
分析各个事物之间的继承关系,抽取出相关的类

public class MainApp {
	public static void main(String[] args) {
		Manager m = new Manager();
		m.work();
		Waiter w = new Waiter();
		w.work();
	}
}
public class Employee {
	private String name;
	private String id;
	public Employee() {}
	public Employee(String name,String id) {
		this.name=name;
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	
	public void work() {
		System.out.println("员工在工作");
	}
}
public class Manager extends Employee{
	private String bonus;
	public Manager() {}
	public Manager(String name,String id,String bonus) {
		super(name,id);
		this.bonus = bonus;
	}
	public String getBonus() {
		return bonus;
	}
	public void setBonus(String bonus) {
		this.bonus = bonus;
	}
	public void work() {
		System.out.println("经理在管理员工!");
	}
	
}
public class Waiter extends Employee{
	public Waiter() {}
	public Waiter(String name,String id) {
		super(name,id);
	}
	public void work() {
		System.out.println("为客户服务");
	}
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值