• [Java]三大特性之封装


    封装这个我们可以从字面上来理解,简单来说就是包装的意思,专业点就是信息隐藏。

    是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。

    也就是说用户是无需知道对象内部的细节(当然也无从知道),可以直接通过该对象对外的提供的接口来访问该对象。

    对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。

    使用封装有几大好处:

    • 良好的封装能够减少耦合。

    • 类内部的结构可以自由修改。

    • 可以对成员进行更精确的控制。

    • 隐藏信息,实现细节。

    我们来通过一些实例来理解封装

    public class Husband {  
          
        /* 
         * 对属性的封装 
         * 一个人的姓名、性别、年龄、妻子都是这个人的私有属性 
         */  
        private String name ;  
        private String sex ;  
        private int age ;  
        private Wife wife;  
     }
    

    使用的方式如下

    Husband husband = new Husband();  
    husband.age = 30;  
    husband.name = "张三";  
    husband.sex = "男";    //貌似有点儿多余  
    

    但是那天如果我们需要修改Husband,例如将age修改为String类型的呢?你只有一处使用了这个类还好,如果你有几十个甚至上百个这样地方,你是不是要改到崩溃。如果使用了封装,我们完全可以不需要做任何修改,只需要稍微改变下Husband类的setAge()方法即可。}

    
        public String getAge() {  
            return age;  
        }  
          
        public void setAge(int age) {  
            //转换即可  
            this.age = String.valueOf(age);  
        } 
    

    到了这里我们确实可以看出,封装确实可以使我们容易地修改类的内部实现,而无需修改使用了该类的客户代码。
    我们在看这个好处:可以对成员变量进行更精确的控制。
    由于取值方法和赋值方法隐藏了实现的变更,因此并不会影响读取或修改该属性的类,避免了大规模的修改,程序的可维护性增强。

  • 相关阅读:
    Swift 协议
    Objective C 链式调用
    objective-c 关键字和概念
    如何在Objective-C中实现链式语法?
    _视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
    Swift静态方法
    Swift静态属性
    objective-c 中代码块(blocks)
    OS笔记047代理传值和block传值
    Objective-C官方文档翻译 Block
  • 原文地址:https://www.cnblogs.com/zhousysu/p/5489306.html
Copyright © 2020-2023  润新知