美文网首页
java封装案例

java封装案例

作者: 数据工程师从入门到放弃 | 来源:发表于2018-12-12 23:13 被阅读0次
    package com.imooc.model;
    
    public class Subject {
        
        private String subjectName;
        private String subjectNo;
        private int subjectLife;
        private Student[] myStudents;
        private int studentNum;
        
        // 无参构造方法
        public Subject() {
            
        }
        
        // 带参构造,带参构造,实现对全部属性的赋值
        public Subject(String subjectName,String subjectNo,int subjectLife) {
    //      this.subjectName = subjectName;
    //      this.subjectNo = subjectNo;
    //      this.subjectLife = subjectLife;
            this.setSubjectName(subjectName);
            this.setSubjectNo(subjectNo);
            this.setSubjectLife(subjectLife);
            
        }
        
        public Subject(String subjectName,String subjectNo,int subjectLife,Student[] myStudents) {
            this.setSubjectName(subjectName);
            this.setSubjectNo(subjectNo);
            this.setSubjectLife(subjectLife);
            this.setMyStudents(myStudents); 
        }
        
        public int getStudentNum() {
            return studentNum;
        }
    
    
    
        public void setStudentNum(int studentNum) {
            this.studentNum = studentNum;
        }
    
        /**
         * 获取选修专业的学生信息 如果保存学生信息的数组未被初始化,则,先初始化长度200
         * @return 保存学生信息的数组
         */
        public Student[] getMyStudents() {
            if(this.myStudents==null)
                this.myStudents=new Student[200];
            return myStudents;
        }
    
        public void setMyStudents(Student[] myStudents) {
            this.myStudents = myStudents;
        }
        
        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;
        }
        
        public void addStudent(Student stu) {
            /*
             * 1、将学生保存到数组中
             * 2、将学生个数保存到studentNum
             * */
            //1、将学生保存到数组中
            for(int i=0;i<this.getMyStudents().length;i++) {
                if(this.getMyStudents()[i]==null) {
                    this.getMyStudents()[i] = stu;
                    // 2、将学生个数保存到studentNum
                    this.studentNum=i+1;
                    return;
                }
            }
            
        }
    
        
    
    }
    
    
    package com.imooc.model;
    
    public class Student {
        // 成员属性:学号、姓名、性别、年龄、专业
            private String studentNo;
            private String studentName;
            private String studentSex;
            private int studentAge;
            private Subject studentSubject;
            
            
            public Student() {
                super();
            }
            //多参构造方法,实现对学号、姓名、性别、年龄的赋值
            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.equals("男"))
                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 = 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;
            }
            
            /**
             * 学生自我介绍的方法
             * 
             * @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;
            }
            
            /**
             * 学生自我介绍的方法
             * @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;
            }
            
            /**
             * 学生自我介绍的方法
             * @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;
            }
    
    }
    
    
    package com.imooc.test;
    
    import com.imooc.model.Student;
    import com.imooc.model.Subject;
    
    public class Test {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            Subject sub1 = new Subject("计算机科学与应用","J0001",4);
            System.out.println(sub1.info());
            
            System.out.println("================================");
            
            //测试Student
            Student stu1=new Student("S01","张三","女",200,sub1);
            System.out.println(stu1.introduction());
            
            System.out.println("================================");
            Student stu2=new Student("S02","李四","女",17);
            System.out.println(stu2.introduction("计算机科学与应用", 4));
            
            
            System.out.println("================================");
            Student stu3=new Student("S03","王五","男",18);
            System.out.println(stu3.introduction(sub1));
            
            System.out.println("================================");
            //测试指定专业中到底有多少学生报名
            sub1.addStudent(stu1);
            sub1.addStudent(stu2);
            sub1.addStudent(stu3);
            System.out.println(sub1.getSubjectName()+"的专业中已有"+sub1.getStudentNum()+"学生进行了报名");
        
            
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:java封装案例

          本文链接:https://www.haomeiwen.com/subject/quumhqtx.html