面向对象三大特性之封装
封装解决的是代码安全的问题,主要是使用 private 关键字将类的成员变量将其封装起来,不能被直接调用,需要使用getter、setter方法调用成员的属性。
先看代码:
public class dog{
String name;
int age;
}
publi class Test{
public static void main(String[] args){
Dao dag = new Dao();
dag.name = "大黄";
dag.age = 2;
}
}
在上述代码中,你可以直接通过new出的实例化对象直接调用dog类的属性,这样dog类的属性很不安全。能够被人随意改动。当添加private保护成员变量之后就需要getter、setter方法去调用dog的成员变量。
public class dog{
private String name;
private int age;
//生成get set方法
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age= age;
}
public int getAge(){
return age;
}
}
publi class Test{
public static void main(String[] args){
Dao dag = new Dao();
//设置值
dag.SetName("大黄");
dag.setAge("2");
//取值
dog.getName();
dog.getAge();
}
}
咦!乍一看好像没什么去别啊,依旧可以设置值,取值啊。
是的 但是现在可以在setter方法中加入判断以验证传入的值是否符合要求。提高代码安全性!
版权声明:本文为weixin_45658861原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。