面向对象——三大特征之一封装

封装

实质:

Java中的封装的实质就是将类的状态信息(成员变量)、方法等隐藏在类的内部,不允许外补程序直接访问,而是通过该类提供的方法来实现对隐藏信息(成员变量)的操作和访问。在Java中,可以使用访问修饰符来控制类中的数据和方法的访问级别,从而实现封装。

优点

封装反映了事物相对的独立性,有效避免了外部错误对此对象的影响。

  1. 防止外部直接访问类的内部数据,可以保护数据的安全性。
  2. 通过限制外部访问,可以更好地控制数据的正确性和完整性。
  3. 可以隐藏类的实现细节,使得类的永远忽不需要了解类的内部实现细节,只需要知道如何使用类提供的接口。

步骤

  1. 修改字段的可见性

    将访问修饰符修改为private,其他类就无法访问。

  2. 设置getter/setter方法

    • 常见的getter/setter方法规则如下

      1. Getter方法

        命名规则:使用属性名前加上"get"作为方法前缀,属性名的首字母通常大写

        返回类型:通常与属性的类型相同

        方法体:直接返回属性的值

      2. Setter方法

        命名规则:使用属性名前加上"set"作为方法前缀,属性名的首字母通常大写

        参数:通常只有一参数,参数类型与属性的类型相同

        方法体:将传入的参数值赋给属性

      3. 布尔类型属性的Getter方法

        命名规则:使用属性名前加上"is"作为方法前缀,属性名的首字母通常大写

        返回类型:通常是布尔类型

        方法体:返回属性的值

  3. 设置字段的存储限制

    可以再setter方法中利用条件判断语句进行赋值限制

意义

封装的主要目的是隐藏类的内部实现细节,防止外部直接访问类的内部数据和方法,从而保证类的安全性和稳定性。优点如下:

  1. 隐藏类的内部细节,使得类的用户只需要知道如何使用类的接口,而不需要关心类的具体实现细节。这样可以更好地降低类的使用难度,提高代码的可维护性和可读性。
  2. 通过限制外部访问,可以更好地控制数据的正确性和完整性。通过封装,可以确保类的数据只能被有限的访问者访问和修改,从而避免了意外的数据损坏和数据安全问题。
  3. 可以更加灵活地修改类的内部实现,而不会影响到类的用户。
  4. 封装可以提高代码的重用性,通过封装可以将类的内部实现独立出来,形成单独的模块,是得这些模块可以再不同的应用程序中重复使用。

遮蔽

概念

遮蔽指的是在一个作用域中使用了一个和外层作用域相同的变量名,导致内部变量遮蔽了外部变量,即无法直接访问外部变量。

使用

局部变量遮蔽成员变量:当一个方法中的参数或者局部变量和成员变量同名时,方法内部就无法直接访问该数组变量,此时需要使用关键字this来应用当前对象的成员变量。

例如
public class Test {
    private int value = 10;

    void method(int value) {
        // this.value = 20; // 错误,因为value已经被局部变量遮蔽了
        this.value += 10; // 正确,可以通过this.value来访问成员变量
    }
}

this

  1. 引用当前对象的成员变量

  2. 调用当前对象的成员方法

  3. 调用当前对象的构造方法

    只能在有效语句的第一行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言行不易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值