面向对象特征一:封装

简介: 面向对象特征一:封装

首先说一下面向对象的三大特征:封装、继承、多态。

先来说一下封装,我们在生活中,假如要开车,只需要按照一定的程序操作即可,不需要了解车的内部到底是如何运行的,在程序中也是一样。
我们在写程序的时候要遵循的一个原则是:高内聚,低耦合。

高内聚:就是把内部操作细节自己完成,不需要对外暴露。

低耦合:仅对外暴露部分方法用于使用
隐藏对象内部的复杂性,只对外暴露简单的接口用于使用。从而提高系统的可扩展性课维护性。这就是封装。

通俗的说,把该隐藏的隐藏起来,该暴露 的暴露出来。这就是封装性的设计思想。

为什么要用到封装?

我们来从专业的角度分析以下为什么要用到封装。

如果我们对类内部的所有成员,都设置为公共的,那么我们的程序将会有安全性问题,也会在调用时产生混乱。
所以,我们要把类内部的属性封装起来,只供类内部自己调用,对外提供相应的getXxx()和setXxx()方法,用于对该属性操作,从而避免上述问题

封装的好处:

  • 使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑, 限制对属性的不合理操作;
  • 便于修改,增强代码的可维护性;

权限修饰符

封装,我们都会用到权限修饰符。Java提供了这几种修饰符:public、缺省、protected、private

这四种权限修饰符的权限如下图所示


以上四种修饰符的用法就是在定义成员的时候在定义关键字前面加。

像是

public static void main(String[] args)
private int age;

但是对于class的权限修饰,只能用public和default(缺省)。

public可以任意的访问(去掉’)

缺省只能在类的内部访问
我们下面看一下用来封装性的代码是什么样子的:

//创建一个类
class Person{
  //创建两个权限为私有的属性
  private int age;
  private String name;
  //提供两个get、set方法对以上两个属性进行操作
  public int getAge(){
    return age;
  }
  public void setAge(int age){
    this.age = age;
  }
  public String getName(){
    return name;
  }
  public void setAge(String name){
    this.name = name;
  }
  //在需要调用的地方创建类的对象
  //然后调用类的方法来进行对属性进行操作即可
}
相关文章
|
6月前
|
存储 Cloud Native Linux
C++ 面向对象三大特征
C++ 面向对象三大特征
|
8月前
|
Java
面向对象编程的三大特征:封装;继承;多态
面向对象编程的三大特征:封装;继承;多态
44 0
|
9月前
|
存储 Java
Java面向对象的特征一:封装性
Java面向对象的特征一:封装性
47 0
|
9月前
|
Java
面向对象的特征二:继承性
面向对象的特征二:继承性
95 0
|
10月前
面向对象的三大特征(3)-多态
面向对象的三大特征(3)-多态
52 0
|
5月前
|
C++
C++ 面向对象特征4 多态(Polymorphism)
C++ 面向对象特征4 多态(Polymorphism)
28 0
|
9月前
|
Java
面向对象特征三:多态性
面向对象特征三:多态性
41 0
|
10月前
面向对象基础-抽象
面向对象基础-抽象
37 0
|
10月前
|
存储 安全 Java
Java面向对象编程三大特征 - 封装
Java面向对象编程三大特征 - 封装
53 0