Android 之路14---Java基础封装案例
来源:互联网 发布:淘宝微淘话题在哪里找 编辑:程序博客网 时间:2024/06/08 04:12
导读
1.学生与专业信息封装案例
2.新增需求统计专业人数
学生与专业信息封装案例
Subject类
package com.hala.modle;public class Subject { private String SubjectName; private String SubjectNum; private int SubjectLife; public Subject(){ } public Subject(String subjectName,String subjectNum,int subjectLife){ this.setSubjectName(subjectName); this.setSubjectNum(subjectNum); this.setSubjectLife(subjectLife); } public String getSubjectName() { return SubjectName; } public void setSubjectName(String subjectName) { SubjectName = subjectName; } public String getSubjectNum() { return SubjectNum; } public void setSubjectNum(String subjectNum) { SubjectNum = subjectNum; } public int getSubjectLife() { return SubjectLife; } public void setSubjectLife(int subjectLife) { if(subjectLife<=0) return ; else SubjectLife = subjectLife; } public String info() { String str = "专业信息如下:\n专业名称:" + this.getSubjectName() + "\n专业编号:" + this.getSubjectNum() + "\n专业年限:" + this.getSubjectLife(); return str; }}
Student类
package com.hala.modle;public class Student { private String num; private String name; private String sex; private int age; private Subject studentSubject; public Subject getStudentSubject() { if(this.studentSubject==null) this.studentSubject=new Subject(); //无参构造的重要性在此显现 return studentSubject; } public void setStudentSubject(Subject studentSubject) { this.studentSubject = studentSubject; } public Student() { } public Student(String num, String name, String sex, int age) { this.setAge(age); this.setName(name); this.setNum(num); this.setSex(sex); } public Student(String num, String name, String sex, int age,Subject studentSubject) { this.setAge(age); this.setName(name); this.setNum(num); this.setSex(sex); this.setStudentSubject(studentSubject); } public String getNum() { return num; } public void setNum(String num) { this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } /** * * @param age年龄 * 年龄>0且<100 * */ public void setAge(int age) { if(age<=0||age>=100) age=18; this.age = age; } /** * 学生的介绍 * @return 姓名,学号,性别,年龄 */ public String introduction(){ String str = "学生信息如下:\n学生姓名:" + this.getName() + "\n学生学号:" + this.getNum() + "\n学生性别:" + this.getSex()+"\n学生年龄:"+this.getAge(); return str; } /** * 学生的介绍 * @param SubjectName * @param SubjectLife * @return 姓名,学号,性别,年龄,专业,学习年限 * 解决方案1;需要什么传什么 */ public String introduction(String SubjectName,String SubjectLife){ String str = "学生信息如下:\n学生姓名:" + this.getName() + "\n学生学号:" + this.getNum() + "\n学生性别:" + this.getSex()+"\n学生年龄:"+this.getAge()+"\n所学专业:"+SubjectName+"\n学习年限:"+SubjectLife; return str; } /** * 学生的介绍 * @param mySubject * @return 姓名,学号,性别,年龄,专业,学习年限,专业编号 * 解决方案2;把Subject当作方法参数传进去 */ public String introduction(Subject mySubject) { String str = "学生信息如下:\n学生姓名:" + this.getName() + "\n学生学号:" + this.getNum() + "\n学生性别:" + this.getSex() + "\n学生年龄:" + this.getAge() + "\n学习专业:" + mySubject.getSubjectName() + "\n学习年限:" + mySubject.getSubjectLife() + "\n专业编号" + mySubject.getSubjectNum(); return str; } /** * 学生的介绍 * @return 姓名,学号,性别,年龄,专业,学习年限,专业编号 * 解决方案3:把Subject当作Student的一个属性 */ public String introduction1s() { String str = "学生信息如下:\n学生姓名:" + this.getName() + "\n学生学号:" + this.getNum() + "\n学生性别:" + this.getSex() + "\n学生年龄:" + this.getAge() + "\n学习专业:" + this.getStudentSubject().getSubjectName() + "\n学习年限:" + this.getStudentSubject().getSubjectLife() + "\n专业编号" + this.getStudentSubject().getSubjectNum(); return str; }}
SubjectTest 类
package com.hala.test;import com.hala.modle.*;public class SubjectTest { public static void main(String[] args) { Subject sub1=new Subject("计算机科学与应用","J0001",4); System.out.println(sub1.info()); }}
StudentTest类
package com.hala.test;import com.hala.modle.Student;import com.hala.modle.Subject;public class StudentTest { public static void main(String[] args) { Student stu1=new Student("s01","张三","男",18); System.out.println(stu1.introduction()); System.out.println("+++++++++++++++++++++++++++++++++"); Student stu2=new Student("s02","李四","女",19); System.out.println(stu2.introduction("计算机科学与技术", "4年")); System.out.println("+++++++++++++++++++++++++++++++++"); Subject sub1=new Subject("计算机科学与应用","J0001",4); Student stu3=new Student("s03","王五","女",18); System.out.println(stu3.introduction(sub1)); System.out.println("+++++++++++++++++++++++++++++++++"); Student stu4=new Student("s04","赵六","男",20,sub1); System.out.println(stu4.introduction1s()); }}
输出结果
学生信息如下:
学生姓名:张三
学生学号:s01
学生性别:男
学生年龄:18
+++++++++++++++++++++++++++++++++
学生信息如下:
学生姓名:李四
学生学号:s02
学生性别:女
学生年龄:19
所学专业:计算机科学与技术
学习年限:4年
+++++++++++++++++++++++++++++++++
学生信息如下:
学生姓名:王五
学生学号:s03
学生性别:女
学生年龄:18
学习专业:计算机科学与应用
学习年限:4
专业编号J0001
+++++++++++++++++++++++++++++++++
学生信息如下:
学生姓名:赵六
学生学号:s04
学生性别:男
学生年龄:20
学习专业:计算机科学与应用
学习年限:4
专业编号J0001
新增需求统计专业人数
Subject类
package com.hala.modle;public class Subject { private String SubjectName; private String SubjectNum; private int SubjectLife; private int studentNum; private Student[] myStudent; public Subject(){ } 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[] myStudent){ this.setSubjectName(subjectName); this.setSubjectNum(subjectNum); this.setSubjectLife(subjectLife); this.setMyStudent(myStudent); } public String getSubjectName() { return SubjectName; } public void setSubjectName(String subjectName) { SubjectName = subjectName; } public String getSubjectNum() { return SubjectNum; } public void setSubjectNum(String subjectNum) { SubjectNum = subjectNum; } public int getSubjectLife() { return SubjectLife; } public void setSubjectLife(int subjectLife) { if(subjectLife<=0) return ; else SubjectLife = subjectLife; } /** * 获取选修课的学生信息,如果保存学生信息的数组未被初始化,则先初始化数组长度为200 * @return 保存学生信息的数组 */ public Student[] getMyStudent() { if(this.myStudent==null) this.myStudent=new Student[200]; //如果未设置此句,会导致空指针异常,空指针异常也常常因为对象未实例化导致的 return myStudent; } public void setMyStudent(Student[] myStudent) { this.myStudent = myStudent; } public int getStudentNum() { return studentNum; } public void setStudentNum(int studentNum) { this.studentNum = studentNum; } public String info() { String str = "专业信息如下:\n专业名称:" + this.getSubjectName() + "\n专业编号:" + this.getSubjectNum() + "\n专业年限:" + this.getSubjectLife(); return str; } /** * 1.实现将学生信息管理存到数组中 * 2.重新设置学生人数 * @param 学生信息管理 */ public void addStudent(Student stu){ for(int i=0;i<this.getMyStudent().length;i++){ if(this.getMyStudent()[i]==null){ stu.setStudentSubject(this); //这里表明引用数据类型做参数相当于引用 this.getMyStudent()[i]=stu; //两句一步到位建立了从学生到学科的联系,也建立了从学科到学生的联系 //其中上边一步到位做法选择的是1问题中的第三种解决方案 this.studentNum=i+1; break; } } }}
Student类
package com.hala.modle;public class Student { private String num; private String name; private String sex; private int age; private Subject studentSubject; public Subject getStudentSubject() { if(this.studentSubject==null) this.studentSubject=new Subject(); //无参构造的重要性在此显现 return studentSubject; } public void setStudentSubject(Subject studentSubject) { this.studentSubject = studentSubject; } public Student() { } public Student(String num, String name, String sex, int age) { this.setAge(age); this.setName(name); this.setNum(num); this.setSex(sex); } public Student(String num, String name, String sex, int age,Subject studentSubject) { this.setAge(age); this.setName(name); this.setNum(num); this.setSex(sex); this.setStudentSubject(studentSubject); } public String getNum() { return num; } public void setNum(String num) { this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } /** * * @param age年龄 * 年龄>0且<100 * */ public void setAge(int age) { if(age<=0||age>=100) age=18; this.age = age; } /** * 学生的介绍 * @return 姓名,学号,性别,年龄 */ public String introduction(){ String str = "学生信息如下:\n学生姓名:" + this.getName() + "\n学生学号:" + this.getNum() + "\n学生性别:" + this.getSex()+"\n学生年龄:"+this.getAge(); return str; } /** * 学生的介绍 * @param SubjectName * @param SubjectLife * @return 姓名,学号,性别,年龄,专业,学习年限 * 解决方案1;需要什么传什么 */ public String introduction(String SubjectName,String SubjectLife){ String str = "学生信息如下:\n学生姓名:" + this.getName() + "\n学生学号:" + this.getNum() + "\n学生性别:" + this.getSex()+"\n学生年龄:"+this.getAge()+"\n所学专业:"+SubjectName+"\n学习年限:"+SubjectLife; return str; } /** * 学生的介绍 * @param mySubject * @return 姓名,学号,性别,年龄,专业,学习年限,专业编号 * 解决方案2;把Subject当作方法参数传进去 */ public String introduction(Subject mySubject) { String str = "学生信息如下:\n学生姓名:" + this.getName() + "\n学生学号:" + this.getNum() + "\n学生性别:" + this.getSex() + "\n学生年龄:" + this.getAge() + "\n学习专业:" + mySubject.getSubjectName() + "\n学习年限:" + mySubject.getSubjectLife() + "\n专业编号" + mySubject.getSubjectNum(); return str; } /** * 学生的介绍 * @return 姓名,学号,性别,年龄,专业,学习年限,专业编号 * 解决方案3:把Subject当作Student的一个属性 */ public String introduction1s() { String str = "学生信息如下:\n学生姓名:" + this.getName() + "\n学生学号:" + this.getNum() + "\n学生性别:" + this.getSex() + "\n学生年龄:" + this.getAge() + "\n学习专业:" + this.getStudentSubject().getSubjectName() + "\n学习年限:" + this.getStudentSubject().getSubjectLife() + "\n专业编号" + this.getStudentSubject().getSubjectNum(); return str; }}
SubjectTest类
package com.hala.test;import com.hala.modle.*;public class SubjectTest { public static void main(String[] args) { Subject sub1=new Subject("计算机科学与应用","J0001",4); Student stu1=new Student("s01","张三","男",18); Student stu2=new Student("s02","李四","女",19); Student stu3=new Student("s03","王五","女",18); Student stu4=new Student("s04","赵六","男",20); sub1.addStudent(stu1); sub1.addStudent(stu2); sub1.addStudent(stu3); sub1.addStudent(stu4); System.out.println(sub1.getStudentNum()); System.out.println(stu1.introduction1s());//这里由于Subject类中一步到位,可以输出学生以及其所学学科的信息 }}
输出结果
4
学生信息如下:
学生姓名:张三
学生学号:s01
学生性别:男
学生年龄:18
学习专业:计算机科学与应用
学习年限:4
专业编号J0001
关于防止空指针异常的两种方法
阅读全文
0 0
- Android 之路14---Java基础封装案例
- Java基础之--封装
- Java基础之封装
- java 基础复习之封装
- Java基础与案例开发详解の抽象和封装
- Android基础之HttpUrlConnection小案例
- Android基础之Intent Flag案例分析
- Android基础之LaunchMode案例分析
- java基础之File(具体案例)
- Java基础之模拟购物系统案例
- Java基础之if语句案例
- Java基础之Switch语句案例
- Java基础之for循环案例
- 1--java基础回顾之封装
- java基础面向对象之封装
- JAVA基础-面向对象之封装
- JAVA基础之访问控制权限(封装)
- Java语言基础之封装类
- 在【ES6】的【Class】中编写属性的取值函数【get】和存值函数【set】时的三点注意事项
- 利用python进行数据分析之dataframe的常见操作
- Java基础2——基本程序设计
- 浅谈时间复杂度及空间复杂度的计算。
- Leetcode:740. Delete and Earn
- Android 之路14---Java基础封装案例
- 在Myeclipse中,如何配置Database Driver呢?
- rails中 yeild 与 content_for之间的区别
- Java微信公众平台开发之群发接口(高级群发)
- Spring学习,IOC的类型
- OpenCV+Python环境搭建
- 「Pillow/PIL」Image Module
- 自定义 Android loading 加载框。
- 面试算法