test.java的代码 调用其他包的
运行结果是:
专业信息如何:
专业名称计算机科学与应用
专业编号:J0001
学制年限:4
======================
学生信息如何:
姓名:李四
学号:S02
性别:女
年龄:18
所报专业名称:计算机科学与应用
学制年限:4
======================
学生信息如何:
姓名:李四
学号:S02
性别:女
年龄:18
所报专业名称:计算机科学与应用
学制年限:4
专业编号:J0001
======================
学生信息如何:
姓名:张三
学号:S01
性别:男
年龄:19
学制年限:计算机科学与应用
学制年限:4
public static void main(String[] args) {
// TODO Auto-generated method stub
//测试Subject
Subject sub1=new Subject("计算机科学与应用","J0001",4);
System.out.println(sub1.info());
System.out.println("======================");
//方案1 在方法中添加两个参数,分别表示专业名称和学制年限(容易理解 参数列表长)
Student stu2=new Student("S02","李四","女", 18);
System.out.println(stu2.introduction("计算机科学与应用",4));
System.out.println("======================");
//方案2 在方法中添加1个专业对象作为参数,通过其属性获得相关信息(更加简单 获取参数方便)
Student stu3=new Student("S03","王五","男", 20);
System.out.println(stu2.introduction(sub1));
System.out.println("======================");
//方案3 在类中添加专业对象作为属性,通过其属性获得相关信息(关联性更强)
Student stu1=new Student("S01","张三","男", 19,sub1);
System.out.println(stu1.introduction());
}
Subject.java代码
package com.imooc.model;
/**
* 专业
* @author Administrator
*
*/
public class Subject {
//成员属性:学科名称\学科编号\学制年限
private String subjectName;
private String subjectNo;
private int subjectLife;
//无参构造方法
public Subject() {
}
//带参构造方法 实现对属性的全部赋值
public Subject(String subjectName,String subjectNo,int subjectLife) {
this.setSubjectName(subjectName);
this.setSubjectNo(subjectNo);
this.setSubjectLife(subjectLife);
}
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 getSubjectLife() {
return subjectLife;
}
//设置学制年限,限制必须>0
public void setSubjectLife(int subjectLife) {
if(subjectLife<=0) return;
this.subjectLife = subjectLife;
}
/**
* 专业介绍的方法
* @return 专业介绍的相关信息,包括名称\编号\年限
*/
public String info() {
String str = "专业信息如何:\n专业名称"+this.getSubjectName()+"\n专业编号:"+this.getSubjectNo()+"\n学制年限:"+this.getSubjectLife();
return str;
}
}
Student.java代码:
package com.imooc.model;
public class Student {
//成员属性:学号\姓名\性别\年龄 \专业(方案3)
private String studentNo;
private String studentName;
private String studentSex;
private int studentAge;
private Subject studentSubject; //(方案3)
//无参构造方法
public Student() {
}
//多参构造方法,实现对全部属性的赋值 实现对对学号/姓名/性别/年龄的赋值
public Student(String studentNo, String studentName, String studentSex, int studentAge) {
this.setStudentNo(studentNo);
this.setStudentName(studentName);
this.setStudentSex(studentSex);
this.setStudentAge(studentAge);
}
//方案3 多参构造方法,实现对全部属性的赋值
public Student(String studentNo, String studentName, String studentSex, int studentAge,Subject studentSubject) {
this.setStudentNo(studentNo);
this.setStudentName(studentName);
this.setStudentSex(studentSex);
this.setStudentAge(studentAge);
this.setStudentSubject(studentSubject);
}
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 getStudentSex() {
return studentSex;
}
public void setStudentSex(String studentSex) {
//性别只能是"男"和"女" 反之强制赋值男
if(studentSex=="男" | studentSex=="女")
this.studentSex = studentSex;
else
this.studentSex="男";
}
public int getStudentAge() {
return studentAge;
}
/**
* 给年龄赋值,限定必须在10-80之间,反之赋值为18
* @param studentAge
*/
public void setStudentAge(int studentAge) {
if(studentAge<10 || studentAge>80)
this.studentAge=18;
else
this.studentAge = studentAge;
}
/**
* 获取专业对象,如果没有实例化,先实例化再返回
* @return
*/
public Subject getStudentSubject() {
if(this.studentSubject==null)
this.studentSubject = new Subject();
return studentSubject;
}
public void setStudentSubject(Subject studentSubject) {
this.studentSubject = studentSubject;
}
/**
* 方案1:学生自我介绍的方法
* @param subjectName 所学专业名称
* @param subjectLife 学制年限
* @return 自我介绍的信息,包括姓名/学号/性别/年龄/所学专业名称/学制年限
*/
public String introduction(String subjectName,int subjectLife) {
String str = "学生信息如何:\n姓名:"+this.getStudentName()+"\n学号:"+this.getStudentNo()+"\n性别:"+this.getStudentSex()+"\n年龄:"+this.getStudentAge()+"\n所报专业名称:"+subjectName+"\n学制年限:"+subjectLife;
return str;
}
/**
* 方案2:学生自我介绍的方法
* @param mySubject 所选专业的对象
* @return 自我介绍的信息,包括姓名/学号/性别/年龄/所学专业名称/学制年限/专业编号
*/
public String introduction(Subject mySubject) {
String str = "学生信息如何:\n姓名:"+this.getStudentName()+"\n学号:"+this.getStudentNo()+"\n性别:"+this.getStudentSex()+"\n年龄:"+this.getStudentAge()+"\n所报专业名称:"+mySubject.getSubjectName()+"\n学制年限:"+mySubject.getSubjectLife()+"\n专业编号:"+mySubject.getSubjectNo();
return str;
}
/**
* 方案3: 学生自我介绍的方法
* @return自我介绍的信息,包括姓名/学号/性别/年龄
*/
public String introduction() {
String str = "学生信息如何:\n姓名:"+this.getStudentName()+"\n学号:"+this.getStudentNo()+"\n性别:"+this.getStudentSex()+"\n年龄:"+this.getStudentAge()+"\n学制年限:"+this.getStudentSubject().getSubjectName()+"\n学制年限:"+this.getStudentSubject().getSubjectLife();
return str;
}
}