模拟实现场景:
场景分析
1.考虑都有哪些对象
每个对象都有对应的特征
2.考虑这些对象都从属哪些类中
分别由这两个类实例化出来四个对象
编写测试subject类
创建类—>创建类属性—>创建getset 方法—>创建无参 和 带参构造器—>测试代码
一键格式化,ctrl shift F
package com.immoc.model;
/**
* 专业类
* @auther:dongdong
*/
public class Subject {
//成员属性:学科名称、学科编号、学制年限
private String subjectName;
private String subjectNo;
private int sujectLife;
//构造器
public Subject() {
}
public Subject(String subjectName, String subjectNo, int sujectLife) {
this.setSubjectName(subjectName);
this.setSubjectNo(subjectNo);
this.setSujectLife(sujectLife);
}
//get 和 set 方法
public String getSubjectName() {
return subjectName;
}
public void setSubjectName(String subjectName) {
this.subjectName = subjectName;
}
public String getSubjectNo() {
return subjectNo;
}
public void setSubjectNo(String subjectNo) {
this.subjectNo = subjectNo;
}
public int getSujectLife() {
return sujectLife;
}
public void setSujectLife(int sujectLife) {
if (sujectLife < 0) {
return;
} else
this.sujectLife = sujectLife;
}
/**
* 专业介绍的方法
* @return 专业介绍的信息,包括名称、编号、年限
* */
public String info() {
String str = "专业信息如下:\n专业名称:" + getSubjectName() + "\n专业编号" + getSubjectNo() + "\n专业学年:" + getSujectLife();
return str;
}
}
package com.immoc.test;
import com.immoc.model.Subject;
public class SchoolTest {
public static void main(String[] args) {
//测试Subject类
Subject one = new Subject("计算机科学与应用","01001",4);
System.out.println(one.info());
Subject two = new Subject("计算机科学与应用","01001",-4);
System.out.println(two.info());
}
}
编写测试Studnet类
构造器 idea 中也有快捷方式创建,Generate-constructor
判断字符串是否相等,用equals 实现。
package com.immoc.model;
public class Student {
//成员属性:学号、姓名、性别、年龄
private String studentNo;
private String studentName;
private String studentGender;
private int studentAge;
//构造器
public Student() {
}
public Student(String studentNo, String studentName, String studentGender, int studentAge) {
this.setStudentNo(studentNo);
this.setStudentName(studentName);
this.setStudentGender(studentGender);
this.setStudentAge(studentAge);
}
//get 和 setter
public String getStudentNo() {
return studentNo;
}
public void setStudentNo(String studentNo) {
this.studentNo = studentNo;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public String getStudentGender() {
return studentGender;
}
/**
* 给性别赋值,限定必须是男或者女。反之强制赋值为男
*
* @param studentGender 传入性别
*/
public void setStudentGender(String studentGender) {
if (studentGender.equals("男") || studentGender.equals("女") )
this.studentGender = studentGender;
else
this.studentGender="男";
}
public int getStudentAge() {
return studentAge;
}
/**
* 给年龄赋值,限定必须在10-100之间,反之赋值为18
*
* @param studentAge 传入年龄
*/
public void setStudentAge(int studentAge) {
if (studentAge<10 || studentAge>100){
this.studentAge = 18;
}
else
this.studentAge = studentAge;
}
/**
* 学生自我介绍
*
* @return 自我介绍信息,包括 学号、姓名、性别、年龄
*/
public String introduction() {
String str = "学生信息如下:\n学号:" + getStudentNo() + "\n姓名" + getStudentName() + "\n性别" + getStudentGender() + "\n年龄" + getStudentAge();
return str;
}
}
package com.immoc.test;
import com.immoc.model.Student;
import com.immoc.model.Subject;
public class SchoolTest {
public static void main(String[] args) {
Student stu1 = new Student("S01","张三","不男不女",100000);
System.out.println(stu1.introduction());
}
}
通过方法实现学生与相关专业关联
让学生在自我表述的时候报上自己的专业 和 学年制年限
方案一:
在方法中添加两个参数分别表示专业名称和学制年限。方法重载实现
方案二:
在方法中添加一个专业对象作为参数,通过其属性获得相关信息。
通过传入这个对象我可以获得和这个对象相关的所有属性。