6.3 建立一个人类(Person)和学生类(Student),功能要求如下:
(1)Person类中包含4个私有型的数据成员name、addr、sex、age,分别为字符串型、字符串型、字符型及整型,表示姓名、地址、性别和年龄。一个4参构造方法、一个两参构造方法、一个两参构造方法、一个输出方法显示4种属性。
(2)Student类继承Person类,增加math、English存放数学和英语成绩。一个6参构造方法、一个两参构造方法、一个无参构造方法和重写输出方法用于显示6种属性。
package book;
class Person{
private String name;
private String addr;
private char sex;
private int age;
//4参的构造方法
public Person(String name,String addr,char sex,int age){
this.setName(name);
this.setAddr(addr);
this.setSex(sex);
this.setAge(age);
}
//2参的构造方法
public Person(String name,String addr){
this.setName(name);
this.setAddr(addr);
}
//无参的构造方法
public Person(){
}
//输出方法
public String getInfo(){
return this.getName()+ this.getAddr() + this.getSex() + this.getAge();
}
public String getName(){
return name;
}
public void setName(String name){
this.name =name;
}
public String getAddr(){
return addr;
}
public void setAddr(String addr){
this.addr = addr;
}
public char getSex(){
return sex;
}
public void setSex(char sex){
this.sex =sex;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age =age;
}
}
class Student extends Person{
private float math;
private float english;
//6参的构造方法
public Student(String name,String addr,char sex,int age,float math,float english){
super(name,addr,sex,age);
this.setMath(math);
this.setEnglish(english);
}
//2参的构造方法
public Student(float math ,float english){
this.setMath(math);
this.setEnglish(english);
}
//无参的构造方法
public Student (){
}
//覆写输出方法
public String getInfo(){
return "姓名:"+super.getName()+"\n"+
"地址:"+super.getAddr()+"\n"+
"性别:"+super.getSex()+"\n" +
"年龄:"+super.getAge() +"\n"+
"数学成绩:"+this.getMath() +"\n"+
"英语成绩:"+this.getEngish();
}
public float getMath(){
return math;
}
public void setMath(float math){
this.math = math;
}
public float getEngish(){
return english;
}
public void setEnglish(float english){
this.english =english;
}
}
public class JiOu{
public static void main(String args[]){
//调用6参的构造函数
Student stu = new Student("SMC","广州",'男',23,88,99);
System.out.println(stu.getInfo());
// //调用2参的构造函数
// Student stu = new Student(80,90);
// System.out.println(stu.getInfo());
}
}
运行结果为:
姓名:SMC
地址:广州
性别:男
年龄:23
数学成绩:88.0
英语成绩:99.0