武汉java培训
达内武汉中心

15271940953

热门课程

什么是Java的封装

  • 时间:2018-06-11 14:10
  • 发布:武汉java培训
  • 来源:互联网

鉴于所有的面向对象编程语言的思路都是差不多,拥有三大特性,分别是“封装”,“继承”,“多态”,而这三大特性则是思路中的支柱点,所以对于想要学java以及想要转型却对这些都不明白的朋友,本篇文章武汉java培训的老师为你们带来java的封装特性。

武汉java培训

一、封装

在面向对象编程中,封装封装(encapsulation)从字面上来理解就是包装的意思,是 指利用抽象数据类型将数据和基于数据的操作封装在一起 ,使其构成一个不可分割的独立实体。其实就是将对象运行所需的方法和数据封装在程序公布其接口,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。也就是说用户是无需知道对象内部的细节(当然也无从知道),但可以通过该对象对外的提供的接口来访问该对象,通俗点就是是其他附加到这些接口上的对象不需要关心对象实现的方法即可使用这个对象。这个概念就是“ 不要告诉我你是怎么做的,只要做就可以了 “。

所以封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果不想被外界方法,我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。

一般在类里要将属性前添加 private 修饰符。然后定义getter和setter方法。然后在我们的 main 函数里的对象,不能再直接调用属性了,只能通过getter和setter方法进行调用。

封装的三大好处

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

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

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

4、隐藏信息,实现细节。

二、修饰符

大家首先要先了解一下什么是修饰符,访问修饰符可以用来修饰属性和方法的访问范围。

在面向对象的过程中,我们通过 权限控制 对封装好的类加上权限,来限制外来者对类的操纵,借以达到保障类中数据和方法的安全的目的。可以这么说:一个类就是一个封装了相关属性及方法的逻辑实体。对于对象中的某些属性或者方法来说,它们可以是私有的,不能被外界访问。也可以是共有的,能够被外界任何人员访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分,从而使得程序出现不要的错误。

java中4个修饰符分别为public、protectd、default、private。这就说明了面向对象的封装性,所有我们要尽量让权限降到最低,从而安全性提高。

如图,代表了不同的访问修饰符的访问范围,比如private修饰的属性或者方法,只能在本类中访问或者使用。什么修饰符都不加的话默认是default,默认在当前类中和同一包下都可以访问和使用。

访问权限 类 包 子类 其他包

public ∨ ∨ ∨ ∨

protect ∨ ∨ ∨ ×

default ∨ ∨ × ×

private ∨ × × ×

如果没有在属性前面添加任何修饰符,默认是default权限,我们通过创建对象就可以直接对属性值进行修改,没有体现封装的特性。这在程序设计中都是不安全的,所以我们需要利用封装,来改进我们的代码。

三、包

有时候会遇到程序的类名可能是重复的,我们就可以用包的概念来解决我们的问题。包的作用就是管理Java文件,解决同名文件冲突。这就和衣柜相类似。衣柜是不是有不同的隔断和抽屉,我们将衣服分门别类地放好,更有利与有利于我们管理。

定义一个包,我们使用package关键字,加上我们的包名。

package com.java.test;

//注意:必须放在源程序的第一行,包名可用”.”号隔开 ,包的命名规范是全小写字母拼写

Java系统中常用的包

java.(功能).(类)

java.lang.(类) 包含java语言基础的类

java.util.(类) 包含语言中各种工具类

java.io.(类) 包含输入、输出相关的类

在不同包中使用另一个文件中的类,就需要用到import关键字。比如import com.java.test1.test.java,同时如果import com.java.test1*这是将包下的所有文件都导入进来。

四、this 关键字

this关键字主要有三个应用:

(1)this调用本类中的属性,也就是类中的成员变量;

(2)this调用本类中的其他方法;

(3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。

五、内部类

内部类( Inner Class )我们从外面看是非常容易理解的,内部类就是将一个类的定义放在另一个类的定义内部。当然与之对应,包含内部类的类被称为外部类。

内部类特性

1、 内部类可以用多个实例,每个实例都有自己状态信息,并且与其他外围对象信息相互独立。

2、 在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类。

3、 创建内部类对象的时刻并不依赖于外围类对象的创建。

4、 内部类并没有令人迷惑的“is-a”关系,他就是一个独立的实体。

5、 内部类提供了更好的封装,除了该外围类,其他类都不能访问。

本篇文章是有武汉Java培训机构为您呈现,希望给您带来更多更好的文章,请扫描下方二维码

武汉java培训

上一篇:JAVA小菜鸟入门必备六要素
下一篇:Java构造函数的代码示例详解

参考一下有关java内存不足的方案

教你几招让你从众多java程序员中脱颖而出

学习设计原则的几点建议

基于TCP/IP的Socket编程

选择城市和中心
贵州省

广西省

海南省