封装
目的及概念
-
概念:
- 在电子方面,封装是指把硅片上的电路管脚,用导线接引到外部接头处,以便与其它期间连接。
- 在面向对象编程中,封装(encapsulation)是将对象运行所需的资源封装在程序对象中——基本上,这个资源就是方法和数据。对象公布其接口,类似“外部接头处”,对象接口包括了公共的方法和初始化数据。其他连接到这个接口上的对象不需要关心其实现的方法就可以直接使用这个对象。“不用告诉我你是怎么做的,只要做就行”
- 封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
-
目的
- 增强安全性:使用对象通过外部接口,以特定的访问权限来使用类的成员
- 简化编程
使用方法及适用场景
public class School {
public static void main(String[] args) {
//创建了student类的对象stu
student stu = new student();
//现在想对student的相关属性修改,可以直接使用public修饰的set/get方法
stu.setId(123);
stu.setGender("男");
stu.setName("zs");
//student类中,SayHi方法是由public所修饰的,故我们可以直接使用stu对象来使用该方法
stu.SayHi();
}
}
class student{
/*类的属性,即抽象得到的有关数据,由于这些属性我们通常将它定义为private类型,即私有,保护数据的安全性,
创建了对象后想要对这些数据进行修改或获取就需要创建若干个public修饰的方法用来修改或获取*/
private int id;
private String name;
private String gender;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "student [id=" + id + ", name=" + name + ", gender=" + gender + "]";
}
//类的方法,即抽象得到的有关行为 或 功能
public void SayHi() {
System.out.println("hello my name is "+ name + "my id is "+ id + "i am a" + gender);
}
}
参考:https://baike.baidu.com :)