面向对象5——封装和隐藏

Posted Demetris

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象5——封装和隐藏相关的知识,希望对你有一定的参考价值。

。面向对象三大特性:封装、继承、多态

封装

1.定义

。将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息;通过该类所提供的方法来实现对内部信息的操作和访问

2.目的

。隐藏类的实现细节

。让使用者只能通过实现预定的方法来访问数据,从而可以在该方法中加入逻辑控制,限制对成员变量的不合理访问

。可进行数据检查,从而奥正对象信息的完整性

。便于修改,提高代码的可维护性

3.实现

。将对象的成员变量和实现隐藏起来,不允许外部直接访问

。把方法暴露出来,让方法控制这些成员变量进行安全访问的访问和操作

。即隐藏该隐藏的,暴露该暴露的

使用访问控制符

1.private:当前类访问权限

。若类里的成员(成员变量、方法、构造器等),使用private控制符修饰,则该成员只能被当前类内部访问

。使用private修饰成员使得该成员与类内部隐藏

2.default:包访问权限

。默认访问权限

。类的成员(成员变量、方法、构造器等)或外部的类不使用任何访问控制符为包访问权限

3.protected:子类访问权限

。protected修饰的成员可以被同包中的其他类访问,也可以被不同包中的子类访问

。是一个protected修饰一个方法通常希望其子类重写该方法

4.public:公共访问权限

。能够被同包、不同包的所有类访问

5.

。对于内部类,可使用控制符修饰

。对于外部类,只能是两种访问控制级别:public、默认

       。。外部类不能使用private和protected修饰

       。。public修饰的外部类可被所有类修饰

       。。不使用访问控制符修饰(default)的外部类只能被同一包中地其他类使用、

6.

。若一个java源文件里定义的所有类没有使用public修饰,则该java源文件名可以是一切合法的文件名

。若java源文件例定义了一个public修饰的类,则该源文件名必须与public修饰的类的类名相同

7.例

。限定以一个Control类

 

。私有成员变量不能被其他类访问

 

。结果

 

package、import和import static

1.package:包

。引入包(package)机制,提供类的多层命名空间

。包解决类的命名冲突、类文件管理等问题

。Java将一组功能相关的类放在同一个package下,从而组成逻辑上的类库单元

。package packageName;指定类的所在包

2.import:关键字

。import可以向某个文件导入指定包层次下某个类或全部类

。import出现在package语句之后,类定义之前

3.import static

。导入指定类的某个静态成员变量、方法或全部的静态变量

、方法

。语句

       。。导入某个静态成员变量、方法

       Import static package.subpackage…ClassName.fieldName|methodName;

       。。导入指定类的全部静态成员变量或方法

       import static packa.subpackage…ClassName.*;

4.Java常用包

。java.lang:Java语言核心类(String、Math、System、Thread…);无需import语句导入,系统自动导入

。java.util:包含Java大量工具类/接口和集合框类/接口(Arrays、List、Set…)

。java.net:包含一些java网络编程相关的类/接口

。java.io:包含java输入输出编程先关的类/接口

。java.text:包含一些java格式化相关的类

。java.sql:包含java进行JDBC数据库编程相关类/接口

。java.awt:包含抽象串口工具集的相关类/接口,主要用于构件图形用户界面(GUI)程序

。java.swing:包含Swing图形用户界面编程的相关类/接口,可用于构件平台无关的GUI程序

以上是关于面向对象5——封装和隐藏的主要内容,如果未能解决你的问题,请参考以下文章

重修课程day24(面向对象5之封装)

python面向对象编程 -- 封装继承(python3.5)

JavaSE基础知识—面向对象(5.4面向对象三大特征:封装继承多态)

面向对象之封装 及@property装饰器使用

JS面向对象三大特征:封装、继承、多态

python面向对象编程(封装隐藏)