程序永远追求高内聚,低耦合。高内聚是类中的数据操作细节由自己完成,不允许外界干涉。低耦合指将更少的方法暴露给外界使用。
封装(数据隐藏):顾名思义,代表将部分不向外展示的程序包封装起来,只留一个操作接口来和外界对接。
封装分为两部分,一个是封闭程序,一个是设置对接口。private封闭程序,get/set设置出口。封装大多是对属性进行封装,对方法使用封装的时候很少。
封装的作用
提高程序的安全性,保护数据
影藏代码的实现细节
统一接口
提高系统的可维护性
封装代表将部分程序隐藏起来,这就产生了私有的性质。
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的使用:在被封装的类中使用 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;
}
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