219 . 面向对象 (上) 封装性与隐藏

219 . 面向对象 (上) 封装性与隐藏

·为什么需要封装?封装的作用和含义?

我要用洗衣机,只需要按一下开关和洗涤模式就可以了。有必要了解洗衣机内部的结构吗?有必要碰电动机吗?

·我们程序设计追求“高内聚,低耦合”。

  • 高内聚:类的内部数据操作细节自己完成,不允许外部干涉;

  • 低耦合:仅对外暴露少量的方法用于使用。

·隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。

为了限制用户直接调用某些属性,可以用private(私有的)关键字把这些功能加以限制,再加入set方法(设置)和get方法(获取).

属性赋值的限制条件不能再属性声明时体现,只能通过方法进行限制条件的添加.同时要避免用户用对象.属性的方式进行赋值.则需将其声明为私有(private).--此时, 针对属性就体现了封装性.

二 , 封装性的体现 :

将属性私有化的同时,提供公共的方法来获取(get)和设置(set)此属性的值.

public class pigTest {
    public static void main(String[] args) {
        pig p = new pig();
        //p.age = 3 ; //报错:The field pig.age is not visible
    //这个属性不可见,私有属性不能对象.属性的方式来调用.
        p.setAge(3);
    System.out.println(p.getAge());
    }
}   
public class pig {
        private int age ; //属性私有
        void setAge(int a) {  //用户可以调用方法来赋值
            age = a ;
        }
        int getAge() {  //调用方法来获取值
            return age ;
        }
}

拓展 : 封装性的体现不止是这些 1, 同上 2, 不对外暴露的私有化方法 3, 单例模式...

三 , 封装性的体现, 需要权限修饰符来配合

封装性的体现需要权限修饰符来配合。

    1. java规定的4种权限(从小到大) : *** private , 缺省 , protected , public ***
    2. 4种权限可以用来修饰类及类的内部结构 : 属性, 方法, 构造器, 内部类.
    3. 具体的, 4种权限可以用来修饰类的内部结构 : 属性, 方法, 构造器, 内部类.
修饰符 内部类 同一个包 不同子类 同一个工程
private yes
default yes yes
protected yes yes yes
public yes yes yes yes

对于类(class)的权限修饰,只可以用public 和 default.

public类可以在任何地方被访问,default类只可以被同一个包内部的类访问。

222. 总结 封装性

Java提供了4种权限修饰符来修饰类及其内部结构,体现了类及其内部结构可见性的大小。

posted @ 2022-10-24 10:51  大宝贝94106  阅读(25)  评论(0)    收藏  举报