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="自我介绍如下:\n"+"姓名:"+this.getSname()+"\n性别:"+this.getSsex()+"\n年龄:"+this.getSage()+"\n专业名称:"+mname+"\n专业编号:"+mnumber+"\n专业年限:"+myears;

        return pri;

    }

    /**

     * 自我介绍,第二种方法

     * @param major

     * @return 姓名,性别,年龄,专业名称,专业编号,专业年限

     */

    public String print(Major major){

        String pri="自我介绍如下:\n"+"姓名:"+this.getSname()+"\n性别:"+this.getSsex()+"\n年龄:"+this.getSage()+"\n专业名称:"+major.getMname()+"\n专业编号:"+major.getMnumber()+"\n专业年限:"+major.getMyears();

        return pri;

    }

    /**

     * 自我介绍,第三种方法

     * @return 姓名,性别,年龄,专业名称,专业编号,专业年限

     */

    public String print(){

        String pri="自我介绍如下:\n"+"姓名:"+this.getSname()+"\n性别:"+this.getSsex()+"\n年龄:"+this.getSage()+"\n专业名称:"+this.getSmajor().getMname()+"\n专业编号:"+this.getSmajor().getMnumber()+"\n专业年限:"+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

Java项目案例之--封装的实例的更多相关文章

  1. 在java项目中使用log4j的实例

    测试log4j的项目结构 Log4j.properties的路径为    src/config/log4j Log4j.properties文件的内容 下面定义日志输出级别是 INFO,并且配置了2个 ...

  2. Java项目案例之---计算公司员工的工资(面向对象复习)

    计算公司员工的工资(面向对象复习) 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份.方法:double getSalary(int month) ...

  3. Java项目案例之---登录和修改(JSP)

    登录和修改(JSP) 通过案例学习jsp的常用知识点: 1.创建一个Map集合,用于存放学生信息,将学生信息存入Map中 2.通过page将需要的包导入 3.用request.getParameter ...

  4. java项目中rmi远程调用实例

    1.创建一个学生实体类Student.java: package com.RMIdemo.entity; @SuppressWarnings("serial") public cl ...

  5. Java项目案例:酒店前台客服管理系统

    import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ String [ ...

  6. Java项目案例之---常用工具类练习

    常用工具类练习 1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日 import java.util.Scanne ...

  7. Java项目案例之---加法计算器(转发和重定向)

    加法计算器(转发和重定向) 运行显示: 转发 重定向 代码: index.jsp <%-- Created by IntelliJ IDEA. User: Administrator Date: ...

  8. Java项目案例之---定时器的使用

    定时器的使用 使用定时器,在当前时间的10秒后调用方法,输出语句 import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  9. Java项目案例之---开灯(面向对象复习)

    开灯(面向对象复习) 设计一个台灯类(Lamp)其中台灯有灯泡类(Buble)这个属性,还有开灯(on)这个方法 设计一个灯泡类(Buble),灯泡类有发亮的方法 其中有红灯泡类(RedBuble)和 ...

随机推荐

  1. C# System.Threading.Timer的使用

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  2. C# 事件详解

    1.事件的本质是什么 答:事件是委托的包装器,就像属性是字段的包装器一样 2.为什么有了委托还有有事件 委托可以被访问就可以被执行,事件则只能在类的内部执行 3.事件要怎么声明 a.明一个委托 //委 ...

  3. GIS基础软件及操作(三)

    原文 GIS基础软件及操作(三) 练习三.地图配准操作 1.对无坐标信息的地形图(图片格式)进行地图配准操作2.编辑器的使用(点要素.线要素.多边形要素的数字化) 本例主要介绍如何给无坐标信息的地形图 ...

  4. 零元学Expression Blend 4 - Chapter 10 用实例了解布局容器系列-「StackPanel」

    原文:零元学Expression Blend 4 - Chapter 10 用实例了解布局容器系列-「StackPanel」 本系列将教大家以实做案例认识Blend 4 的布局容器,此章介绍的布局容器 ...

  5. C# ToolStrip在父窗体失去焦点时,点击里面的按钮无效

    C#里面ToolStrip控件,在父窗体失去焦点的情况下,第一次点击ToolStrip上面的按钮,只是让父窗体获得焦点,并不会引发按钮的Click事件.要执行按钮操作必须再点击一次.相当于说,在父窗体 ...

  6. Flask在VSCODE下基本开发环境配置

    1.创建环境 cd /project/path python3 -m venv venv 第一个VENV是命令,第二个是文件夹名 如果环境不要了,一般做法是直接整个(VENV)文件夹删掉 环境修改下面 ...

  7. Gps坐标距离计算C#实现

    园子里找到两钟实现方式,做一记录,回头再认真学习,先拿来就用吧: 1.@旋风描述的算法: 场景:已知两个GPS点的经纬度坐标信息.计算两点的距离. 1. 距离/纬度关系 GPS: 22.514519, ...

  8. XP下安装ubuntu

    一,环境说明 dell vostro 1400笔记本,winxp sp3操作系统,ubuntu-9.10-desktop-i386.iso 写这篇随笔的时候我用的已经是ubuntu了. 我是在我的移动 ...

  9. delphi dispose释放内存的方法

    delphi dispose释放内存的方法 2010-06-08 19:39:59|  分类: DELPHI |  标签: |举报 |字号大中小 订阅     dispose使用方法的简单介绍在本文末 ...

  10. 解决socket.error: [Errno 98] Address already in use问题

    如果python中socket 绑定的地址正在使用,往往会出现错误, 在linux下: 则会显示“ socket.error: [Errno 98] Address already in use” 在 ...