面向对象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——封装和隐藏的主要内容,如果未能解决你的问题,请参考以下文章
python面向对象编程 -- 封装继承(python3.5)