面向对象三大特性之封装

面向对象三大特性之封装

封装解决的是代码安全的问题,主要是使用 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版权协议,转载请附上原文出处链接和本声明。