26 封装详解(属性访问控制):_四个访问控制符_protected的两个细节

 欢迎来到@一夜看尽长安花 博客,您的点赞和收藏是我持续发文的动力

对于文章中出现的任何错误请大家批评指出,一定及时修改。有任何想要讨论的问题可联系我:3329759426@qq.com 。发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

    专栏:

文章概述:对 封装详解(属性访问控制):_四个访问控制符_protected的两个细节的介绍

关键词:封装详解(属性访问控制)四个访问控制符   protected的两个细节

本文目录

封装(encapsulation)

封装的作用和含义

封装的实现—使用访问控制符

封装的使用细节

封装(encapsulation)

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

封装的作用和含义

我要看电视,只需要按一下开关和换台就可以了。有必要了解电视机内部的结构吗?有必要碰碰显像管吗?制造厂家为了方便我们使用电视,把复杂的内部细节全部封装起来,只给我们暴露简单的接口。

我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合是仅暴露少量的方法给外部使用,尽量方便外部调用。

编程中封装的具体优点:

  • 提高代码的安全性。
  • 提高代码的复用性。
  • “高内聚”:封装细节,便于修改内部代码,提高可维护性。
  • “低耦合”:简化外部调用,便于调用者使用,便于扩展和协作。

封装的实现—使用访问控制符

Java是使用访问控制符来控制哪些细节需要封装,哪些细节需要暴露的。

Java中4种访问控制符分别为private、default、protected、public。

访问权限修饰符

修饰符

同一个类**

同一个包中

子类

所有类

private

default

protected

public

【注】关于protected的两个细节:

  1. 若父类和子类在同一个包中,子类可访问父类的protected成员,也可访问父类对象的protected成员。
  2. 若子类和父类不在同一个包中,子类可访问父类的protected成员,不能访问父类对象的protected成员。

示例代码 :

package basic_grammar;

public class TestProtected {
    public static void main(String[] args) {
        ChildClass2 child = new ChildClass2();
        child.accessProtected();
    }
}
class FatherClass2{
    protected int value;

    protected void f() {
        System.out.println("FatherClass method");
    }
}
class ChildClass2 extends FatherClass2{
    // 创建父类对象
    FatherClass2 father = new FatherClass2();

    protected void accessProtected() {
        // 通过父类对象访问其 protected 成员(因为在同一个包中)
        father.value = 10;  // 访问 protected 字段
        father.f();         // 调用 protected 方法

        // 通过子类访问父类的 protected 成员
        this.value = 20;  // 访问继承自父类的 protected 字段
        this.f();         // 调用继承自父类的 protected 方法
        System.out.println("Value through father instance: " + father.value);
        System.out.println("Value through this instance: " + this.value);
    }

}

封装的使用细节

开发中封装的简单规则:

  • 属性一般使用private访问权限。

属性私有后, 提供相应的get/set方法来访问相关属性,这些方法通常是public修饰的,以提供对属性的赋值与读取操作(注意:boolean变量的get方法是is开头!)。

  • 方法:一些只用于本类的辅助性方法可以用private修饰,希望其他类调用的方法用public修饰。
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值