一、封装的概念
生活案例:
生活中的封装比如ATM收款机,会使用一个机器来保证钱的正常流动,给你一个特定的方法来存钱取钱,不会说让你随意的取钱存钱,
在java中,封装也是这个概念,封装就是把过程和数据包裹起来,对数据的访问只能通过已经定义的接口,面向对象计算始于这个基本概念,即现实世界已经被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象
java中封装的理解:
我们在程序设计的时候就追求“高内聚、低耦合”
高内聚:类的内部数据操作细节自己完成,不允许外部干涉;
低耦合:仅对外部暴露少量的方法用于使用。
隐藏对象内部的复杂性、只对外公开简单的接口。便于外界调用从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来,这就是封装的设计思想。在Java中通过权限修饰符关键字private、protected和public实现封装。
二、封装的使用
作用:提高代码的安全性
通过一个属性感受封装:
public class A{
int age;
}
public static void main(String[] args){
A a = new A();
a.age = 500;
}
在这里设置一个A类,有一个年龄属性,但是在主函数里面给年龄设置值的时候,可以胡乱的设置一个值,几百几千的违背常理的设置都不会报错,这个时候就可以使用封装了
public class A{
private int age;
//提供一个返回年龄的方法
public int getAge(){
return age;
}
//提供一个处理年龄误差的方法
public void setAge(int age){
if(age<80){
age=18;
}else{
this.age = age;
}
}
}
public static void main(String[] args){
A a = new A;
a.getAge(81);
system.uot.println(a.setAge);
上面的代码,对于age属性来说,我加了private。这样外界对他的访问就受到了限制,现在我还想加上其他的限制条件,但是在属性本身上没有办法再加了,所以我们通过定义方法来进行条件的添加。
以属性为案例:
进行封装:
①、将属性私有化,被private修饰,加入权限修饰符
②、提供public修饰的方法让别人来访问使用
③、即使外界可以通过方法来访问属性了,但是也不能随意访问,因为可以在方法中加入限制条件。
④、设置getter、setter方法,给别人提供访问的路径,idea快捷键:alt+insert键快速生成