浅谈Java三大特性--封装

众所周知,Java作为世界上最流行的语言之一,面向对象是其重要的特点。而面向对象这个概念对于初学者来说,或许需要一点儿抽象思维。这抽象思维实在是有点玄乎,笔者学习编程也算有两个寒暑了,这抽象思维硬是没有升上来!

在阅读以下篇幅之前,我们默认读者已经理解面向对象的概念。

面向对象有三大特性:继承、封装、多态。本篇重点讨论的便是面向对象的”封装”特性。以下是笔者的所理解的封装定义 :

封装是利用抽象数据类型将数据和基于对数据的操作打包在一起,使其构成一个不可分割的独立实体。在独立实体中,数据被保护在抽象数据类型的内部的同时,还要尽可能隐藏内部实现细节,仅保留一些接口来使之与外界产生联系。

说完定义,我们先谈谈封装都有哪些优点 :

  • 高内聚,低耦合
  • 通过接口,类的内部数据可以被外部修改
  • 以下省略一万字….

以上简短的叙述,仅是笔者的心得。为了让读者更好的理解封装,我们可以看看一下小例子。

public class Test { //抽象数据类型Test

    String name; //数据name

    int age;    //数据age

    Date birthday; //数据birthday

    //基于数据的操作
    void sayHello(){
        // do something....
    }
}

通过例子,我们可以发现上述代码虽然实现的封装,但这种封装在实际情况中并不怎么实用。而且,如果我们想访问Test数据的时候,直接通过实例对象来访问,那么还要封装何用?

为了更好的体现封装的含义,我们来看看以下代码:

public class Test { //抽象数据类型Test

    private String name; //私有数据 name

    private int age;    //私有数据 age

    private Date birthday; //私有数据  birthday

    //基于数据的操作

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public Date getBirthday() {
        return birthday;
    }
    // setName、setAge、setBirthday省略...
}

我们通过private关键字,把数据私有化。这样做,类外便不可访问直接访问内部数据,若要访问,便只能通过接口访问。所以,面向对象的封装性,可以使程序模块具有良好的独立性和可维护性。

PS : 自从使用了封装,妈妈再也不担心,儿媳妇耐不住寂寞啦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值