[笔记]隐藏和封装
来源:互联网 发布:linux中chown命令 编辑:程序博客网 时间:2024/05/24 04:23
隐藏和封装
封装
封装是面向对象编程的三大特性之一。
封装的目的:
隐藏类方法实现的细节;
让使用者只能通过预先定义的方法来访问数据,从而可以在方法中加入一些控制逻辑,限制对成员变量的不合理访问。
简单的理解就是,把成员变量隐藏起来,暴露方法来提供成员的修改和访问
public class Student { private String name; private int age; private boolean sex; public Student(String name, int age, boolean sex) { super(); this.name = name; this.age = age; this.sex = sex; } public void setName(String name) { this.name = name; } public String getName() { return this.name + (this.sex ? "先生" : "女士"); }}
Getter 和 Setter
把属性定义为 private 类型,即私有,向外部暴露其 get 和 set 方法。
相关方法名的定义:
get + 首字母大写的属性名() :get 方法一般都是具有和属性数据类型一致的返回值,并且是没有形参的。
set + 首字母大写的属性名(参数):set 方法一般都是具有和属性数据类型一致的方法参数,返回值一般是 void。
在 Eclipse 中,可以通过快捷方式生成相关属性的 getter 和 setter
在 「source」-> 「generate getters and setters」
package 和 import
为了便于类文件的管理,Java 中引入了包的概念 package,类的唯一性是要带包名的。
包名的命名规范:
第一层是企业的域名的反写
例如:com.ntqingniao
第二层是企业项目的名称
例如:com.ntqingniao.j96、com.ntqingniao.crm
第三层是企业项目模块的名称
例如:com.ntqingniao.j96.oop、com.ntqingniao.crm.base
在 Eclipse 中 「new-package」方式建包
类定义包的语法
// 在类文件的第一行
package com.ntqingniao.j96.oop;
在不同的包中,是可以定义相同类名的类的。因为一个类的唯一性是包含包名的,比如 com.ntqingniao.j96.oop.Demo1 叫做类的全名。
在实际的企业开发中,是不允许出现没有包的类。
使用包
使用 import 关键字将本类要使用的其他包中的类进行引入。
但是,import 不是必须的,我们可以使用类全名的方式进行类的使用。一般不建议,太麻烦。
使用 ALT+/ 可以单个引入,也可以使用 CTRL+SHIFT+O 全部引入。
如果要引入某个包下面的所有类,可以使用通配符 * ,例如,引入com.ntqingniao.j96.oop.*,但是要注意通配符只能出现在最后。
对于 java.lang 包中的类,系统会自动的默认引入,不需要使用 import。
自学部分:静态引入 import static,用的较少
访问控制修饰符
访问控制修饰符能修饰的对象包括:成员变量、方法、构造器
访问控制修饰符,就是控制修饰的对象可以在什么样的范围(包)内被访问。
“`
private:只能在当前类中被访问,一般用于对成员变量的修饰;
default:没有定义修饰符就是 default;
protected:可以在子类和本包中被访问,外部包不能被访问,在有一定业务意义的包中,可以定义类中成员变量是protected;
public:一般定义在方法或者一些常量中,用于外部接口的访问。
在实际的开发中,大部分的场景使用 private 定义属性,public 定义方法。
JDK 中比较重要的包
java.lang:包含了 Java 语言的核心类库,如 String、System、Math等等,使用该包下的类是不需要显式引入;
java.util:包含了大量的工具类,如 Date、集合框架;
java.net:Java 网络编程的类和接口包;
java.io:Java 输入输出,如流等方面编程的包;
java.text:格式化方面的类;
java.sql:数据库编程方面的类和接口包;
java.awt:图形用户界面方面的类和接口包。
- [笔记]隐藏和封装
- java学习笔记<二>隐藏和封装
- 常量、封装和隐藏
- 5.4隐藏和封装
- 隐藏和封装
- 隐藏和封装
- 隐藏和封装
- 封装和信息隐藏
- 封装和隐藏_变量
- 赵雅智_java隐藏和封装
- 面向对象(隐藏和封装)
- 有关封装和信息隐藏的误区
- 有关封装和信息隐藏的误区
- java 第七课 隐藏和封装
- 有关封装和信息隐藏的误区
- 有关封装和信息隐藏的误区
- iOS编程——隐藏和封装
- JavaScript设计模式 --- 封装和信息隐藏
- TextView内容多颜色,多点击事件
- Android 从一个应用打开另一个应用
- js节点
- 应用首次安装还是覆盖安装
- Cannot add or update a child row, MySQL外键错误解析
- [笔记]隐藏和封装
- 流媒体并发量与宽带、码率计算详解
- 安装laravelExcel详细教程包含安装问题和导入Excel数据中文问题解决办法
- 3.4构造函数与析构函数【C++】
- 个人总结:AS升级到3.0后遇到的问题及解决方法
- PHP开发APP接口
- 2017.11.01 东北师大附中联考题目
- [杂题 数论] BZOJ2705: [SDOI2012]Longge的问题
- Fragment懒加载(只加载一次哦)