封装

封装

程序永远追求高内聚,低耦合。高内聚是类中的数据操作细节由自己完成,不允许外界干涉。低耦合指将更少的方法暴露给外界使用。

封装(数据隐藏):顾名思义,代表将部分不向外展示的程序包封装起来,只留一个操作接口来和外界对接。

封装分为两部分,一个是封闭程序,一个是设置对接口。private封闭程序,get/set设置出口。封装大多是对属性进行封装,对方法使用封装的时候很少。

封装的作用

  1. 提高程序的安全性,保护数据

  2. 影藏代码的实现细节

  3. 统一接口

  4. 提高系统的可维护性

属性私有

封装代表将部分程序隐藏起来,这就产生了私有的性质。

private 私有的,与public的公开向对应。在对类中的属性进行封装时,在变量类型前面加 private关键字,这样外界实例化(类 对象 = new 类)这个类后也无法使用该属性。

在这个类中对name 、age中加入private变为私有的。

package oop.demo03;

public class Demo01 {
   private String name;
   private int age;

}

这样在主方法中实例化后也不能访问这两个变量。

package oop.demo03;

public class Application {
   public static void main(String[] args) {
       Demo01 S1 = new Demo01();
       S1.name = "小明";//此处name爆红,无法访问
  }
}

 

get / set

外界无法访问私有的属性,所以衍生出get/set。get/set的作用是外界可以通过这两个关键词访问内部私有的属性,但无法篡改内部数据。这就实现了封装的接口。

get:获取这个数据

set:给这个数据赋值

get的使用:在被封装的类中使用 public 变量类型 get变量名(){return this.变量名;} 在主方法中使用new get变量名就可以使用了。

package oop.demo03;

public class Demo01 {
   private String name;
   private int age;

   public String getName(){//get使用
       return this.name;
  }
}

 

set的使用:在被封装的类中使用public void 变量类型 set变量名(赋值的变量类型 变量名1){this.变量名 = 变量名1}

public void setAge(int a){//set使用
   this.age = a;
 


 

set中,可以加入一些条件来使外部访问时更符合规则。

    public void setAge(int a){
       if (age>120 || age<0){
           this.age = 0;
      }else{
           this.age = a;
      }

主方法中调用get/set

在main方法中,先照常实例化变量(类名 对象名 = new 类名),然后使用 对象名.set被私有的参数名(赋值的数据);

package oop.demo03;

public class Application {
   public static void main(String[] args) {
       Demo01 demo01 = new Demo01();
       demo01.setAge(50);
       System.out.println(demo01.getAge());

  }
}
原文地址:https://www.cnblogs.com/jinweichaoyouqu/p/13955008.html