在類的getter/setter方法中在getter方法中要先實列話
在構造方法中無參構造(必須要構造)好處很多!!!
描述學生信息及相關聯(lián)的專業(yè)信息
把Subject和Stydent的屬性進行連接有3中方法
Student中的代碼
Subject類中的代碼
test類中的代碼及輸出
專業(yè)信息如下:
專業(yè)名稱 計算機科學
專業(yè)編號 J0001
學制年限 4
==============================
學生信息如下:
我的名字是 張三
我的學號為 S01
性別為 性別錯誤
年齡為 18
所在學科為 計算機科學
學科的年制 4
==============================
學生信息如下:
我的名字是 李四
我的學號為 S02
性別為 女
年齡為 20
所在學科為 計算機科學學院
學科的年制 4
==============================
學生信息如下:
我的名字是 王五
我的學號為 S03
性別為 男
年齡為 21
所在學科為 計算機科學
學科的年制 4
新增需求:計算機專業(yè)有多少人
整代碼如下
subject類
package com.jiedada.model;
/**
* 專業(yè)類
* @author 杰大大
*
*/
public class Subject {
//學科的名稱,學科編號,學制年限
private String subjectName;
private String subjectNum;
private int subjectLife;
private Student student[];
private int studentNum;
//帶參構造實現(xiàn)對屬性的全部賦值
public Subject(String subjectName,String subjectNum,int subjectLife)
{
this.setSubjectName(subjectName);
this.setSubjectNum(subjectNum);
this.setSubjectLife(subjectLife);
}
public Subject(String subjectName,String subjectNum,int subjectLife,Student student[],int studentNum)
{
this.setSubjectName(subjectName);
this.setSubjectNum(subjectNum);
this.setSubjectLife(subjectLife);
this.setStudent(student);
this.setStudentNum(studentNum);
}
//無參構造
public Subject()
{
}
public String getSubjectName() {
return subjectName;
}
public void setSubjectName(String subjectName) {
this.subjectName = subjectName;
}
public String getSubjectNum() {
return subjectNum;
}
public void setSubjectNum(String subjectNum) {
this.subjectNum = subjectNum;
}
public int getSubjectLife() {
return subjectLife;
}
public void setSubjectLife(int subjectLife) {
if(subjectLife<=0)
{
return;
}
else
this.subjectLife = subjectLife;
}
//專業(yè)介紹的方法名稱,編號,年限
/*public void info()
{
//String str="專業(yè)信息如下\n專業(yè)名稱 "+this.getSubjectName()+"\n專業(yè)編號 "+this.getSubjectNum()+"\n學制年限 "+this.getSubjectLife();
//return str;
System.out.println("專業(yè)名稱 "+this.getSubjectName());
System.out.println("專業(yè)編號 "+this.getSubjectNum());
System.out.println("專業(yè)年限 "+this.getSubjectLife());
}*/
/**
* 增加學生,判斷student是不是實例化了
* @return 學生的
*/
public Student[] getStudent() {
if(student==null)
{
this.student=new Student[200];
}
return student;
}
public void setStudent(Student[] student) {
this.student = student;
}
public int getStudentNum() {
return studentNum;
}
public void setStudentNum(int studentNum) {
this.studentNum = studentNum;
}
public String info() {
String str="專業(yè)信息如下:\n專業(yè)名稱 "+this.getSubjectName()+"\n專業(yè)編號 "+this.getSubjectNum()+"\n學制年限 "+this.getSubjectLife();
return str;
}
public void addNum(Student student)
{
int i;
for(i = 0;i
{
if(this.getStudent()[i]==null)
{
this.getStudent()[i]=student;
break;
}
}
this.setStudentNum(i+1);
}
}
student類的完整代碼
package com.jiedada.model;
public class Student {
//姓名,年齡,性別,學號
private String studentNo;
private String studentName;
private String studentSex;
private int studentAge;
private Subject studentSubject;
//無參構造
public Student() {
}
/*public Student(String studentNo, String studentName, String studentSex, int studentAge) {
this.studentNo = studentNo;
this.studentName = studentName;
this.studentSex = studentSex;
this.studentAge = studentAge;
}*/
//有參構造
public Student(String studentNo,String studentName,String studentSex,int studentAge)
{
this.setStudentNo(studentNo);
this.setStudentName(studentName);
this.setStudentSex(studentSex);
this.setStudentAge(studentAge);
}
//有參構造而且返回全部屬性
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;
}
public void setStudentAge(int studentAge) {
if(studentAge>=10&studentAge<=100)
this.studentAge = studentAge;
else
this.studentAge=18;
}
//在創(chuàng)建類的Get是要把類實例化
public Subject getStudentSubject() {
if(studentSubject==null)
{
this.studentSubject=new Subject();
}
return studentSubject;
}
public void setStudentSubject(Subject studentSubject) {
this.studentSubject = studentSubject;
}
/**
* 這是學生自我介紹得等等
* @return 姓名,學號,姓名,年齡,所在專業(yè),專業(yè)年齡
*/
public String introduction()
{
String str="學生信息如下:\n我的名字是 "+this.getStudentName()+"\n我的學號為 "
+this.getStudentNo()+"\n性別為 "+this.getStudentSex()+"\n年齡為 "+this.studentAge
+"\n所在學科為 "+this.getStudentSubject().getSubjectName()+"\n學科的年制 "+this.getStudentSubject().getSubjectLife();
return str;
}
/**
* 學生的自我介紹的方法
* @param subjectName
* @param subjectLife
* @return 姓名,學號,姓名,年齡,所在專業(yè),專業(yè)年齡
*/
public String introduction(String subjectName,int subjectLife)
{
String str="學生信息如下:\n我的名字是 "+this.getStudentName()+"\n我的學號為 "
+this.getStudentNo()+"\n性別為 "+this.getStudentSex()+"\n年齡為 "+this.studentAge
+"\n所在學科為 "+subjectName+"\n學科的年制 "+subjectLife;
return str;
}
/**
* 介紹自己
* @param subject
* @return 姓名,學號,姓名,年齡,所在專業(yè),專業(yè)年齡
*/
public String introduction(Subject subject)
{
String str="學生信息如下:\n我的名字是 "+this.getStudentName()+"\n我的學號為 "
+this.getStudentNo()+"\n性別為 "+this.getStudentSex()+"\n年齡為 "+this.studentAge
+"\n所在學科為 "+subject.getSubjectName()+"\n學科的年制 "+subject.getSubjectLife();
return str;
}
}
test類的完整代碼
package com.jiedada.test;
import com.jiedada.model.Student;
import com.jiedada.model.Subject;
public class SchoolTest {
public static void main(String[] args) {
// 調試Subject
Subject sub = new Subject("計算機科學", "J0001", 4);
System.out.println(sub.info());
System.out.println("==============================");
Student stu1=new Student("S01","張三","無",5,sub);
System.out.println(stu1.introduction());
System.out.println("==============================");
Student stu2=new Student("S02","李四","女",20);
System.out.println(stu2.introduction("計算機科學學院", 4));
System.out.println("==============================");
Student stu3=new Student("S03","王五","男",21);
System.out.println(stu3.introduction(sub));
sub.addNum(stu1);
sub.addNum(stu2);
sub.addNum(stu3);
System.out.println("選擇 "+sub.getSubjectName()+"專業(yè)的人數(shù)為 "+sub.getStudentNum());
}
}