java篇 类的进阶0x01:封装

封装 encapsulation

核心:不让外部直接对成员变量进行访问与操作,而是通过类的方法来对成员变量进行访问与操作。

  • 这样做还能在方法内部编写代码逻辑实现成员变量的赋值前检查,避免成员变量被赋予非法值。

把操作成员变量的代码放在该成员变量所属的类里。如实现下面这几类功能的代码:

  • 初始化成员变量
  • 简单访问和设置成员变量的值(这类代码也被称作 Java Bean
  • 专有的一些计算逻辑

封装: 用类定义成员变量,并把操作成员变量的代码都放在类里,就是所谓的“封装”。其好处是:

  • 可以集中管控,自己的成员变量别人不可以乱来,避免出现非法的状态,比如语法上合法但逻辑上不合理的数据状态(像库存变成负数);
  • 代码逻辑可以公用,避免代码重复,修改的时候只需改一处;
  • 封装得好,可以更好地抽象一类事物。
public class Person{
    String name;
    int age;
    String sex;
    double height;
    
    // 提供下面的设置值方法给别的类使用,而非让别的类直接去操作 Person 类的成员变量
    public void init(String name, int age, String sex, double height){
        // 可以在这里添加检查值的合法性的判断代码
        if (age <= 0){
            System.out.println("xxxxxxxx");
            xxxxx;
        }
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.height = height;
    }
    
    public String getName(){
        return name;
    }
    
    public void setName(String name){
        this.name = name;
    }
}

// 调用方
public class Citizen{
    public static void main(String[] args){
        Person tom = new Person();
        // tom.name = "Tom";	// Person 不要让别人这样去直接设置成员变量的值,而是通过调用方法来完成值得设置
        // 封装后:
        tom.init("Tom",23,"male","175");	// 通过这种方式来设置成员变量
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值