java类与对象学习

问题:

  父类:人员类
  子类:教师类 学生类
  完成功能:录入五名学生的基本信息,录入一名教师的基本信息,以该教师的身份录入五名
  学生的成绩,对学生成绩排序输出学生姓名、学号、成绩、授课教师姓名。

分析:

人员类:属性:姓名,性别(这里因为不要求输入性别,所以我并没有设置性别);
       函数:show()函数;//用于输出姓名
教师类:这个如果正常老师的话,有工号和课程名,这里我只设置了一个课程名,但是也没用到
学生类:学号,成绩,授课老师;
       函数:show1()//用于输出学生信息


person类
package data1;

public class Person {
private String name;

public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}

public void show()
{
	System.out.println("学生姓名:"+name);
}
}

Student类
package data1;

public class Student extends Person {
	private String no;
	private String teachername;
	private int score;
	public String getNo() {
		return no;
	}
	public void setNo(String no) {
	
		this.no = no;
	}
	public String getTeachername() {
		return teachername;
	}
	public void setTeachername(String teachername) {
		this.teachername = teachername;
	}
	public int getScore() {
		return score;
	}
	public void setScore(int score) {
		this.score = score;
	}
	public void show1() {
	System.out.println("学号:"+no+" 授课老师:"+teachername+"成绩:"+score);
	}
	

}

Student类

package data1;

public class Teacher extends Person {
private String classname;

public String getClassname() {
	return classname;
}

public void setClassname(String classname) {
	this.classname = classname;
}

}

主类

package data1;

import java.util.Scanner;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student []student=new Student[3];
		Teacher teacher=new Teacher();
		Scanner scanner=new Scanner(System.in);
		System.out.println("输入您的姓名");
		teacher.setName(scanner.next());
		for(int i=0;i<3;i++)
		{
			System.out.println("输入学生信息");
			student[i]=new Student();
			System.out.println("输入姓名");
			student[i].setName(scanner.next());
			System.out.println("输入学号");
			student[i].setNo(scanner.next());
			System.out.println("输入成绩");
			student[i].setScore(scanner.nextInt());
			student[i].setTeachername(teacher.getName());
		}
		for(int i=0;i<2;i++)
		{
			for(int j=0;j<2-i;j++)
				if(student[j].getScore()

简单优化
将person类中的show方法去掉,在student的show1方法中输出姓名

public void show1() {
System.out.println("姓名:"+super.getName()+"学号:"+no+" 授课老师:"
+teachername+"成绩:"+score);//super在调用父类的构造函数时不加点,非构造函数加点
}
再将主函数中的show()去掉即可

你可能感兴趣的:(java,类与对象)