博客
关于我
习题练习题-第三题
阅读量:719 次
发布时间:2019-03-17

本文共 1813 字,大约阅读时间需要 6 分钟。

类的封装实践

任务描述

编写一个学生类,并根据要求对学生类进行封装。防止外界对类中的成员变量随意访问。名校系统:学生类毕业设计课程设置日五任务。

练习目标

  • 了解为什么要对类进行封装;
  • 掌握如何实现类的封装。
  • 需求分析

    对类进行封装,防止外界对类中的成员变量随意访问。为掌握类的封装,本练习将使用private关键字对学生类的成员变量nameage进行私有化,同时分别提供一个setName(String n)和setAge(int a)方法用于外界的访问,其中setAge(int a)中需要对age进行判断。

    设计思路(实现原理)

    1)对Student类进行修改,将name和age属性使用private修饰,然后定义getName()、setName(String n)、getAge()和setAge(int a)四个对外访问name和age的方法。

    2)在setAge(int a)方法中对传入的参数进行检查,如果输入值为负数,则打印出“设置的年龄不合法”,如果不为负数,才将其设置为age属性的值。

    3)编写测试类,在main()方法中创建Student类的实例对象,通过调用对象的setName(String n)和setAge(int a)方法来设置示例对象的name属性和age属性值,并调用speak()方法。

    测试说明

    测试1:测试输入:小吴,-3;

    预期输出:设置的年龄不合法
    我的名字是小吴,今年0岁

    测试2:测试输入:大强,25;

    预期输出:我的名字是大强,今年25岁

    ###代码

    package task03;
    import java.util.Scanner;
    /* * 定义学生类作封装练习 */
    class Student {
    private String name;
    private int age;
    /* 公共构造函数,初始化name和age */
    public Student(String name, int age) {
    this.name = name;
    this.age = age;
    }
    /* 公共方法,获取name */
    public String getName() {
    return name;
    }
    /* 公共方法,设置name */
    public void setName(String name) {
    this.name = name;
    }
    /* 公共方法,获取age */
    public int getAge() {
    return age;
    }
    /* 公共方法,设置age,包含参数检查 */
    public void setAge(int age) {
    if (age < 0) {
    System.out.println("设置的年龄不合法");
    } else {
    this.age = age;
    }
    }
    /* 公共方法,说话 */
    void speak() {
    System.out.println("我的名字是" + name + ",今年" + age + "岁");
    }
    }
    /* 测试类 */
    public class Task03 {
    public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String name1 = scan.next();
    int age1 = scan.nextInt();
    Student s = new Student();
    s.setName(name1);
    s.setAge(age1);
    s.speak();
    }
    }

    运行结果示例

    测试1输出:

    设置的年龄不合法
    我的名字是小吴,今年0岁

    测试2输出:

    我的名字是大强,今年25岁

    转载地址:http://qjshz.baihongyu.com/

    你可能感兴趣的文章
    nodejs libararies
    查看>>
    nodejs npm常用命令
    查看>>
    nodejs npm常用命令
    查看>>
    Nodejs process.nextTick() 使用详解
    查看>>
    NodeJS yarn 或 npm如何切换淘宝或国外镜像源
    查看>>
    nodejs 中间件理解
    查看>>
    nodejs 创建HTTP服务器详解
    查看>>
    nodejs 发起 GET 请求示例和 POST 请求示例
    查看>>
    NodeJS 导入导出模块的方法( 代码演示 )
    查看>>
    nodejs 开发websocket 笔记
    查看>>
    nodejs 的 Buffer 详解
    查看>>
    NodeJS 的环境变量: 开发环境vs生产环境
    查看>>
    nodejs 读取xlsx文件内容
    查看>>
    nodejs 运行CMD命令
    查看>>
    Nodejs+Express+Mysql实现简单用户管理增删改查
    查看>>
    nodejs+nginx获取真实ip
    查看>>
    nodejs-mime类型
    查看>>
    NodeJs——(11)控制权转移next
    查看>>
    NodeJS、NPM安装配置步骤(windows版本)
    查看>>
    NodeJS、NPM安装配置步骤(windows版本)
    查看>>