类的设计分析实战
- 类设计
- 学生类的设计分析
- 教师类的设计
- 课程类的设计
- 成绩类的设计
- 代码实现
- 学生类的实现
- 教师类的实现
- 课程类的实现
- 成绩类的实现
需求:学生、教师、课程、成绩的类设计
类设计
学生类的设计分析
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();
}
}