类的设计分析实战

  • 类设计
  • 学生类的设计分析
  • 教师类的设计
  • 课程类的设计
  • 成绩类的设计
  • 代码实现
  • 学生类的实现
  • 教师类的实现
  • 课程类的实现
  • 成绩类的实现



需求:学生、教师、课程、成绩的类设计

类设计

学生类的设计分析

1 Student类中包含姓名、成绩两个属性
2.分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值
3.Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个
参数分别为姓名和成绩属性赋值
4.在测试类中创建两个Student对象,一个使用无参的构造方法,然后调用方法给姓名和成绩赋值,另一个使用有参的构造方法,在构造方法中给姓名和成绩赋值

教师类的设计

1.定义Teacher类,定义两个成员变量name,sid,学校名称schoolName静态变量
2.定义Teacher类构造函数,对name,sid初始化赋值,并提供get、set属性的方法
3.编写测试类TeacherTest,创建Teacher类对象,使用set属性方法设置值,get属性方法获取值

课程类的设计

1.定义课程类Course,有课程编号cno,课程名称cname,任课老师对Teacher
2.课程类Course的构造函数,完成对课程编号, 课程名称,任课老师的初始化
3.定义实例方法输出课程信息和关联的任课教师信息

成绩类的设计

1.设计成绩类Score,有学生对象s,课程对象c,和分数score
2.成绩类的构造函数,完成对学生对象,课程对象,分数的初始化
3.通过实例方法输出学生所学课程的成绩,同时输出任课教师的信息

代码实现

学生类的实现

public class Student {
	private String name;

	private double score;

	public Student() {

	}

	public Student(String name, double score) {
		this.name = name;
		this.score = score;
	}

	public String getName() {
		return name;
	}

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

	public double getScore() {
		return score;
	}

	public void setScore(double score) {
		this.score = score;
	}

}
public class Test1 {
	public static void main(String[] args) {
		Student s1 = new Student();
		s1.setName("小王");
		s1.setScore(60);
		System.out.println(s1.getName() + "的成绩为" + s1.getScore());
	}
}

教师类的实现

public class Teacher {
	private String name;

	private int sid;

	public static String schoolName;

	static {
		schoolName = "沈阳医学院";
	}

	public Teacher(String name, int sid) {
		super();
		this.name = name;
		this.sid = sid;
	}

	public String getName() {
		return name;
	}

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

	public int getSid() {
		return sid;
	}

	public void setSid(int sid) {
		this.sid = sid;
	}

}
public class Test2 {
	public static void main(String[] args) {
		Teacher t = new Teacher("王老师", 1001);
		System.out.println("老师姓名:" + t.getName());
		System.out.println("编号为:" + t.getSid());
		System.out.println("所在学校:" + Teacher.schoolName);
	}
}

课程类的实现

public class Course {
	private int cno;

	private String cname;

	private Teacher teacher;

	public Course(int cno, String cname, Teacher teacher) {
		this.cno = cno;
		this.cname = cname;
		this.teacher = teacher;
	}

	public String getCname() {
		return this.cname;
	}

	public void showCourseInfo() {
		System.out.println("课程编号: " + cname + " 课程名称: " + " 任课老师 " + teacher.getName());
	}
	
	public Teacher getTeacher() {
		return this.teacher;
	}

}
public class Test3 {
	public static void main(String[] args) {
		Teacher t = new Teacher("凤文", 1001);
		new Course(101, "java面向对象程序设计", t).showCourseInfo();
	}
}

成绩类的实现

public class Score {
	private Student s;

	private Course c;

	private double score;

	public Score(Student s, Course c, double score) {
		super();
		this.s = s;
		this.c = c;
		this.score = score;
	}

	public void showStudentAndCourseInfo() {
		System.out.println("学生姓名:" + s.getName() +
				",所学课程是" + c.getCname() + ",任课老师是" + c.getTeacher().getName());
	}

}
public class Test4 {
	public static void main(String[] args) {
		Student stu = new Student("张三", 60);
		Teacher t = new Teacher("原老师", 1002);
		Course c = new Course(101, "python程序设计", t);
		Score s = new Score(stu, c, 60);
		s.showStudentAndCourseInfo();
	}
}