文章目录
一、为什么需要封装性
1.解释
- 客观世界里的每一个事物的内部信息都隐藏在其内部,外界无法直接操作和修改,只能通过指定的方式进行访问和修改
2.面向对象开发原则:高内聚、低耦合
- 高内聚:类的内部数据操作细节自己来完成,不允许外部干涉。
- 低耦合:仅暴露少量的方法给外部使用,尽量方便外部调用。
二、什么是封装性?
- 所谓封装,就是把客观事物封装成抽象概念的类,并且类可以把自己的数据和方法只向可信的类和对象开放,向没必要开放的类或者对象隐藏信息。
简单说:把该露出来的露出来,该藏起来的藏起来。这就是封装性的设计思想。
三、Java中如何实现封装?
1.权限修饰符
- java规定了四种权限修饰
访问范围 | private | default | protected | public |
---|---|---|---|---|
同一类中 | √ | √ | √ | √ |
同一包中子类 | √ | √ | √ | |
不同包子类 | √ | √ | ||
全局范围 | √ |
2.作用
- 我们可以使用4种权限修饰来修饰类及类的内部成员。当这些成员被调用时,体现可见性的大小。
3.封装性的体现
- 私有化(private)类的属性,提供公共(public)的get 和 set方法,对此属性进行获取或修改
- 将类中不需要对外暴露的方法,设置为private.
- 单例模式中构造器private的了,避免了在类的外部创建实例。
四、构造器(constructor)
1.理解
- constructor: n.构造者
2.构造器的作用
- 作用1:搭配new关键字,创建类的对象
- 作用2:在创建对象的同时,可以给对象的相关属性赋值
3.构造器的使用说明
- 使用格式:权限修饰符 类名(形参列表){ }
- 创建类后,如果编写者不提供任何构造器,系统会默认提供一个空参的构造器,且构造器的权限与类声明的权限相同。
- 一旦类中显示声明了构造器,则系统不再提供默认的空参的构造器。
- 一个类中可以创建多个构造器,彼此之间构成重载。
五、实例变量赋值过程
在类的属性中,可以有哪些位置给属性赋值?
- 显示赋值
- 构造器中赋值
- 通过方法赋值
- 通过访问对象属性赋值
- 默认赋值
六、JavaBean的理解
JavaBean是一种Java语言写成的可重用组件
- JavaBean,是指符合以下标准的Java类
①.类是公共的
②.有一个无参的公共的构造器
③.有属性,且有对应的get、set方法
七、this关键字的使用
1.this可以调用的结构
- 成员变量
- 方法
- 构造器
2.this的理解
- 当前对象(在方法中调用时) 或 当前正在创建的对象(在构造器中调用时)
3.this调用属性和方法
- 针对于方法内的使用情况:(准确的说是非static修饰的方法)
一般情况:我们通过对象a调用方法,可以在方法内调用当前对象a的属性或其他方法。此时我们可以在属性和其他方法前使用“this.”,表示当前属性或方法所属对象a。但是,一般情况下,我们都选择省略此“this.”结构。
特殊情况:如果方法的形参变量名与对象属性同名,我们必须使用“this.”进行区分。使用this.修饰的变量即为属性(或成员变量),没有使用“this.”修饰的变量。即为局部变量。
4.针对与构造器内的使用情况:
一般情况:我们通过构造器创建对象时,可以在构造器内调用当前正在创建的对象的属性或方法。此时,我们可以在属性和方法前使用"this.",表示当前属性或方法所属的对象。但是,一般情况下,我们都选择省略此"this."结构
特殊情况:如果构造器的形参与正在创建的对象的属性同名了,我们必须使用"this."进行区分。使用this.修饰的变量即为属性(或成员变量),没有使用this.修饰的变量,即为局部变量。
5.this调用构造器
- 格式: “this(形参列表)”
- 我们可以在类的构造器中,调用当前类中指定的其它构造器要求:"this(形参列表)"必须声明在当前构造器的首
- 结论: "this(形参列表)"在构造器中最多声明一个
- 如果一个类中声明了n个构造器,则最多有n-1个构造器可以声明有"this(形参列表)"的结构