1.什么叫封装?
封装是指将抽象性函式接口的实现细节隐藏起来。
2.为什么要封装?
为了防止该代码和数据被外部类定义的代码随机访问。
3如何封装?
实现封装步骤
1.声明属性的可见性为 private(私有)
public class Student {
private String name;
private int age;
}
属性设为私有的,只有本类才能访问,这样就对信息进行了隐藏。
那么肯定有人要问把信息隐藏了我想要看到数据怎么办?各位客官稍安勿躁…
2.每个属性提供对外的公共访问方法,这样就可以私有属性进行访问了
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
实例中public方法是外部类访问该类成员变量的入口:
getxxx—可以访问数据
setxxx—可以进行赋值
public class Test {
public static void main(String args[]){
Student sut=new Student();
sut.setName("张三");
sut.setAge(25);
System.out.print("name:"+sut.getName()+"-----age:"+sut.getAge());
}
}
输出结果:
name:张三-----age:25
这样就是一个完整的封装了。
优点:
- 减少耦合
- 隐藏信息,更加安全
- 类的内部可自由修改
- 可以跟精准的控制成员变量
还有个小细节我觉得要提一下:
1.两个name 为什么要自己给赋值
2.两个name 为什么没有报错
原因是这两个是不同的name this.name指的是本身类 实例变量属性name,setName(String name) 是局部变量 name ,没有this就会报错
来源:CSDN
作者:weixin_43923753
链接:https://blog.csdn.net/weixin_43923753/article/details/104346414