前言:
我们在编写程序的当中发现一些缺陷,比如属性随意访问,不合理的赋值等,那么如何解决这些缺陷呢?答案就是封装。什么是封装?
面向对象的三大特征之一-----封装
将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的访问。就是该露的露,该藏的藏,我们在程序设计的过程中要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己来完成,不允许外部干涉,低耦合:就是, 仅暴露少量的方法给外部使用。
封装(数据的隐藏)
通常,应禁止直接访问一个对象中数据的实际表示,而是应该通过操作接口来访问,这叫信息隐藏。
封装的好处:
- 隐藏类的实现细节
- 只能通过规定方法访问数据
- 方便加入控制语句
- 方便修改实现
封装的步骤:
- 修改属性的可见性-----使用private
- 创建公有的getter/setter方法-----用于读写
- 在getter/setter中加入属性控制语句-----对属性值的合法性进行判断
案例:
- 创建一个类,造一个虚拟的人
- 定义他的属性-----比如名字、年龄、性别等
- 创建一个方法-----定义他所能做的事情
代码如下:
public class GZ {
private String name;
private int age;
private String sex;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
System.out.println("我的名字叫:"+name);
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
System.out.println("我今年"+age+"岁");
}
}
- 以上是定义的类以及属性,进行了一个封装
代码如下:
public class Demo {
public static void main(String[] args){
GZ input=new GZ();
input.setName("铁锤");
input.setAge(20);
}
}
这样代码进行封装后,用户就无法直接看到里面的代码啦