Java项目案例之---封装的实例
- 有一个专业类,有一个专业对象,专业名称:计算机科学与技术,专业编号:J001,专业年限:4,对年限添加约束,如果输入小于0,则默认为0,否则显示输入的值
- 有一个学生类,有一个学生对象,学生姓名:张三,性别:男,年龄:19,对性别添加约束,如果输入不是男或女,则默认为男,否则显示输入的值
- 计算机科学与技术专业的学生张三做自我介绍
public class Major { private String mname; private String mnumber; private int myears; //无参构造函数 public Major(){} //带参构造函数 public Major(String mname,String mnumber,int myears){ this.setMname(mname); this.setMnumber(mnumber); this.setMyears(myears); } public String getMname() { return mname; } public void setMname(String mname) { this.mname = mname; } public String getMnumber() { return mnumber; } public void setMnumber(String mnumber) { this.mnumber = mnumber; } public int getMyears() { return myears; } public void setMyears(int myears) { if(myears<0){ this.myears = 0; }else{ this.myears = myears; } } }
public class Student { private String sname; private String ssex; private int sage; private Major smajor; //无参构造函数 public Student(){} //带参构造函数1 public Student(String sname,String ssex,int sage){ this.setSname(sname); this.setSsex(ssex); this.setSage(sage); } //带参构造函数2 public Student(String sname,String ssex,int sage,Major smajor){ this.setSname(sname); this.setSsex(ssex); this.setSage(sage); this.setSmajor(smajor); } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getSsex() { return ssex; } public void setSsex(String ssex) { if(!ssex.equals("男")||!ssex.equals("女")){ this.ssex="男"; }else{ this.ssex = ssex; } } public int getSage() { return sage; } public void setSage(int sage) { this.sage = sage; } public Major getSmajor() { return smajor; } public void setSmajor(Major smajor) { if(smajor==null){ this.smajor=new Major(); } this.smajor = smajor; } /** * 自我介绍,第一种方法 * @param mname * @param mnumber * @param myears * @return 姓名,性别,年龄,专业名称,专业编号,专业年限 */ public String print(String mname,String mnumber,int myears){ String pri="自我介绍如下: "+"姓名:"+this.getSname()+" 性别:"+this.getSsex()+" 年龄:"+this.getSage()+" 专业名称:"+mname+" 专业编号:"+mnumber+" 专业年限:"+myears; return pri; } /** * 自我介绍,第二种方法 * @param major * @return 姓名,性别,年龄,专业名称,专业编号,专业年限 */ public String print(Major major){ String pri="自我介绍如下: "+"姓名:"+this.getSname()+" 性别:"+this.getSsex()+" 年龄:"+this.getSage()+" 专业名称:"+major.getMname()+" 专业编号:"+major.getMnumber()+" 专业年限:"+major.getMyears(); return pri; } /** * 自我介绍,第三种方法 * @return 姓名,性别,年龄,专业名称,专业编号,专业年限 */ public String print(){ String pri="自我介绍如下: "+"姓名:"+this.getSname()+" 性别:"+this.getSsex()+" 年龄:"+this.getSage()+" 专业名称:"+this.getSmajor().getMname()+" 专业编号:"+this.getSmajor().getMnumber()+" 专业年限:"+this.getSmajor().getMyears(); return pri; } }
public class Test { public static void main(String[] args){ Major mj1=new Major("计算机科学技术","J001",-4); Student st1=new Student("张三","中间",19,mj1); //自我介绍第一种输出 //System.out.println(st1.print(mj1.getMname(),mj1.getMnumber(),mj1.getMyears())); //自我介绍第二种输出 //System.out.println(st1.print(mj1)); //自我介绍第三种输出 System.out.println(st1.print()); } }
运行结果:
自我介绍如下:
姓名:张三
性别:男
年龄:19
专业名称:计算机科学技术
专业编号:J001
专业年限:0