• Java项目案例之--封装的实例


    Java项目案例之---封装的实例

    1. 有一个专业类,有一个专业对象,专业名称:计算机科学与技术,专业编号:J001,专业年限:4,对年限添加约束,如果输入小于0,则默认为0,否则显示输入的值
    2. 有一个学生类,有一个学生对象,学生姓名:张三,性别:男,年龄:19,对性别添加约束,如果输入不是男或女,则默认为男,否则显示输入的值
    3. 计算机科学与技术专业的学生张三做自我介绍
    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

  • 相关阅读:
    luogu1060开心的金明
    luogu1048采药
    uva1025城市里的间谍
    scoi刷题记录(2019/04/07)
    差分及树上差分的正确食用姿势(2019/2/21学习笔记)
    图论技巧(2019/1/28之一)
    考试反思(2019/1/26学习笔记)
    考试反思(2019/1/22)
    「一本通 5.2 例 5」皇宫看守
    「一本通 5.2 例 3」数字转换
  • 原文地址:https://www.cnblogs.com/dyddzhp/p/11168611.html
Copyright © 2020-2023  润新知