java-第5章作业

要求:

设计一个学生类Student,包含的属性有姓名name和年龄age。由学生类派生出本科生类Undergraduate和Graduate,本科生类包含的属性有专业specialty,研究生类包含的属性有研究方向studydirection.每个类都有相关的数据输出方法。(用上this,super关键字)

思路:

画出UML图分析

Student类 int age String name Student() Student(String name, int age) void set_name void print_name void set_age void print_age Undergraduate子类 specialty:String Undergraduate() Undergraduate(String name, int age, String specialty) void set_specialty void print_specialty Graduate子类 String studydirection Graduate() Graduate(String name, int age, String studydirection) void set_studydirection void print_studydirection

其实也不复杂,三个类都有两个构造方法,学生类可以设置和打印年龄和姓名

而本科生类可以设置和打印专业方向,研究生可以设置和打印研究方向

Student.java

public class Student {
	int age;
	String name;
	
	protected Student(){}
	protected Student(String name, int age)
	{
		this.name = name;
		this.age = age;
	}
	
	void set_name(String name)
	{
		this.name = name;
	}
	void print_name()
	{
		System.out.println("学生姓名:"+name);
	}
	void set_age(int age)
	{
		this.age = age;
	}
	void print_age()
	{
		System.out.println("学生学号:"+age);
	}
}

Undergraduate.java

public class Undergraduate extends Student {
	String specialty;
	public Undergraduate(){}
	public Undergraduate(String name, int age, String specialty)
	{
		super.name = name;
		super.age = age;
		this.specialty = specialty;
	}
	
	void set_specialty(String specialty)
	{
		this.specialty = specialty;
	}
	void print_specialty()
	{
		System.out.println("专业方向:"+specialty);
	}
}

Graduate.java

public class Graduate extends Student{
	String studydirection;
	public Graduate(){}
	public Graduate(String name, int age, String studydirection)
	{
		super.name = name;
		super.age = age;
		this.studydirection = studydirection;
	}
	
	void set_studydirection(String studydirection)
	{
		this.studydirection = studydirection;
	}
	void print_studydirection()
	{
		System.out.println("专业方向:"+studydirection);
	}
}

Test5.java

public class Test5 {

	public static void main(String[] args) {
		Undergraduate zhang = new Undergraduate("张三",20,"考古学");
		zhang.print_name();
		zhang.print_age();
		zhang.print_specialty();
		
		System.out.println(" ");
		
		Graduate li = new Graduate("李四",25,"洛阳铲");
		li.print_name();
		li.print_age();
		li.print_studydirection();

	}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值