Private关键字封装讲解【一篇文章让你了解private在封装中的作用】

Private关键字封装讲解【一篇文章让你了解private在封装中的作用】

封装就是将一些细节信息隐藏起来,对于外界不可见。private是封装的一种。

使用场景:如果类中的变量由public定义,在这个类被实例化时,给类的变量赋值的过程中,无法阻止不合理的数字设置进来(例如代码2中年龄明显是不合理的)。用private关键字修饰成员变量可对其进行保护。

一旦使用了private进行修饰,那么本类中可以直接访问,超出本类范围,需要定义一对Setter/Getter方法来访问(如代码3)。代码3通过在方法中设置条件,从而保证赋值的合理性。通过代码4,对其进行验证。这就是private在封装中的作用。

Setter/Getter方法必须用setXXX和getXXX来命名【如果数据类型时布尔值,getXXX要换成isXXX】
对于Getter来说,不能有参数,返回值类型和成员变量对应。
对于Setter来说,不能有返回值,参数类型和成员变量对应。

===================================================
代码1:定义一个person类。

package com.basic;

public class Person {
    String name;
    public int age;
}

代码2:将person类实列化并赋值。其中年龄为-20岁,明显不合理。

package com.basic;

public class Demoperson {
    public static void main(String[] args) {
        Person p=new Person();
        p.name="沈腾";
        p.age=-20;
    }
}

代码3用private定义年龄变量

package com.basic;

public class Person {
    String name;
    private int age;

    public void setName(String name) {//Setter方法,必须以setXXX的方式命名
        this.name = name;
    }
    public String getName() {//Getter方法,必须以getXXX的方式命名。布尔值除外,布尔值用isXXX。
        return name;
    }
    public void setAge(int age) {
        if(age<=0||age>=150) {//假设最小年龄为0岁,最大年龄为150岁。
            System.out.println("数据不合理");
        }
        this.age = age;
    }
    public int getAge() {
        return age;
    }


}

代码4验证;运行结果为数据不合理。

package com.basic;

public class Demoperson {
    public static void main(String[] args) {
        Person p=new Person();
        p.name="沈腾";
        p.setAge(-20);
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值