首页技术文章正文

如何实现类的封装?

更新时间:2022-03-30 来源:黑马程序员 浏览量:

类的封装是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类提供的方法实现对内部信息的操作访问。

在Java开发中,在定义一个类时,将类中的属性私有化,即使用private关键字修饰类的属性,被私有化的属性只能在类中被访问。如果外界想要访问私有属性,则必须通过setter和getter方法设置和获取属性值。

接下来修改文件3-3,使用private关键字修改name属性和age属性,实现类的封装,如文件3-4所示。

classStudent {
    private String name; // 声明姓名属性
    private int age; // 声明年龄属性
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        if (age <= 0) {
            System.out.println("您输入的年龄有误!");
        } else {
            this.age = age;
        }
    }
    public void read() {
        System.out.println("大家好,我是" + name + ",年龄" + age);
    }
}
public class Example04 {
    public static void main(String[] args) {
        Student stu = new Student();     // 创建学生对象
        stu.setName("张三");             // 为对象的name属性赋值
        stu.setAge(-18);                 // 为对象的age属性赋值
        stu.read();                      // 调用对象的方法
    }
 }

在文件3-4中,使用private关键字将属性name和age声明为私有变量,并对外界提供公有的访问方法,其中,getName()方法和getAge()方法用于获取name属性和age属性的值,setName()方法和setAge()方法方法用于设置name属性和age属性的值。

文件3-4的运行结果如图3-9所示。

1648633544334_41.png

图3-9文件3-4的运行结果由图3-9可知,当调用setAge()方法传入了一个负数-18时,age显示为初始值0。这是因为setAge()方法对参数age进行了判断,如果age的值小于或等于0,会打印“您输入的年龄有误!”,并将age设置为0。





猜你喜欢:

Collections类中如何进行添加和排序操作?

Java中常见的异常类型有哪些?

ServletFileUpload类方法有哪些?

什么是微服务?微服务和分布式的区别有哪些?

黑马程序员Java开发培训

分享到:
在线咨询 我要报名
和我们在线交谈!