zoukankan      html  css  js  c++  java
  • Java private关键字

    1.

    封装性在java中的体现:

    • 方法就是一种封装
    • 关键字private也是一种封装

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

     问题描述:定义年龄的时候,无法阻止不合理的数值被设置进来

    解决方案:用private关键字将需要保护的成员变量进行修饰

    一旦使用了private进行修饰,那么本类中仍然可以随意访问,但是超出了本类范围之外的就不能再直接访问了

    public class personPrivate {
        String name;
        int age;
        public void show() {
            System.out.println("我叫:" + name + ", 年龄:" + age);
        }
    }
    

      

    public class Demo03Person {
        public static void main(String[] args) {
            personPrivate prson = new personPrivate();
            prson.show();
    
            prson.name = "小赵";
            prson.age = -12;
            prson.show();
        }
    }
    

      

    如果对age设置成private

     

     

     那么在其他类中不能直接访问,怎样才能间接访问呢?

     间接访问private成员变量,就是定义一对setter/getter

     那既然可以间接设置age,我可以prson.setAge(-12),为什么还要这样做呢?

     因为,我们可以在setAge方法里面设置限制条件,这样就能够去除一些不符合条件的数值了

     

     

    注意:必须叫setXxx或者是getXxx命名规则

    对于Getter,不能有参数,返回值类型和成员变量类型对应。

    对应Setter,不能有返回值,参数类型与成员变量类型对应。

    2.

    现在可以用@Getter和@Setter,而不需要再写set方法和get方法

    @Getter和@Setter 出现的目的是
    public int getFoo() {return foo;} 不需要在写get 和 set 方法。

    您可以使用@Getter或@Setter来注释任何字段,以使lombok自动生成默认的getter / setter。

    lombok生成的getter / setter方法默认作用域将是public
    除非你明确指定一个AccessLevel

     

  • 相关阅读:
    OSG中的示例程序简介(转)
    空间点到直线垂足坐标的解算方法 (转)
    OpenscenGraph中控制swapbuffer的方法(用于多机大屏幕同步显示机制)
    吏治 ? 官治 ?
    C++中使用union的几点思考(转)
    一个穷人移民美国三年的生活经历(转)
    展望99股市:谁是重组大黑马?(转)
    mysql 在一个实例运行情况下再搭建一个实例
    在CentOS下安装crontab服务
    Zabbix监控之迁移zabbix server
  • 原文地址:https://www.cnblogs.com/GumpYan/p/13722991.html
Copyright © 2011-2022 走看看