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权限,我们通过创建对象就可以直接对属性值进行修改,没有体现封装的
特性。这在程序设计中都是不安全的,所以我们需要利用封装,来改进我们的代码。
修饰符举例修饰符举例
首先我们先定义四个类Person,Parent,Teacher,Student,分别比较其他包,子类,包,本类的区别。每个类的位置图所示。