JavaSE第十章 封装

Java自我学习路线

  • 一、封装的理解
    • 1. 面向对象三大特征
    • 2. 封装的定义
    • 3. 封装的优点
    • 4. 封装的作用
  • 二、如何封装
    • 1. 封装的代码实现
    • 2. get(读)、set(写)实例方法

一、封装的理解

1. 面向对象三大特征

  • 封装
  • 继承
  • 多态
    有了封装,才有继承;有了继承,才论多态
  • 面向对象的首要特征:封装

2. 封装的定义

  • 封装是将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来对隐藏的信息进行操作和访问
  • 具体来说:封装是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,防止该类的代码和数据被外部类定义的代码随机访问,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互,也就是说用户是无需知道对象内部的细节,但可以通过该对象对外提供的接口来访问该对象,适当的封装可以让程式代码更容易理解与维护,也加强了程式代码的安全性。

3. 封装的优点

  • “低耦合”:简化外部调用,便于调用者使用,便于扩展和协作
  • “高内聚”:封装细节,便于修改内部代码,提高可维护性
  • 提高代码的复用性,可以对成员变量进行更精确的控制
  • 提高代码的安全性,隐藏信息,实现细节

4. 封装的作用

  1. 保证内部结构的安全
  2. 屏蔽复杂,暴露简单

二、如何封装

1. 封装的代码实现

  1. 属性私有化(使用private关键字进行修饰,修饰后的数据只能在“本类”中访问)
  2. 对外提供公开的 set 方法和 get 方法作为操作接口
  • 具体步骤:
    需要被保护的属性使用 private 进行修饰,给这个私有的属性对外提供公开的 set 和 get 实例方法,其中 set 方法用来修改属性的值,get 方法用来读取属性的值

2. get(读)、set(写)实例方法

  • 不带 static 关键字的方法称为实例方法,这些方法调用的时候需要先创建对象,然后通过“引用”去调用这些方法,实例方法不能直接采用“类名”的方式调用
  • get 方法语法格式:
public 返回值类型 get+属性名首字母大写(无参){
    return a;
}
  • set 方法语法格式:
public void set+属性名首字母大写(一个参数){
    a = 参数;
}
  • set 方法有一个参数,用来给属性赋值,并且set 方法没有返回值、不带 static 关键字,一般在 set 方法内部编写安全控制程序,因为 set 方法是修改内部数据的
  • get 方法不需要参数,返回值类型是该属性所属类型,并且不带 static 关键字

你可能感兴趣的:(JavaSE学习路线)