封装性概念: 隐藏实现细节,仅对外提供接口
封装性是面向对象的三大特性之一
封装有:属性的封装,方法的封装,类的封装,组件的封装,模块化封装,系统级封装…

封装的特点
好处
1、模块化
2、信息隐藏
3、代码重用
4、插件化易于调试
5、具有安全性
缺点:会影响执行效率

封装性
如果属性没有封装,在本类外部创建的对象,可以直接访问修改属性
private关键字:访问权限修饰符,public表示公有的,private表示私有的,公有的属性和方法可以被外部的其他类访问,私有的属性和方法只能在本类中访问,想要在外部访问私有的属性,我们需要提供公有的方法来间接访问。
通常在一个类中,属性都私有化并提供getter and setter方法

封装属性前:

class person{
	String name;
	int age;
}

封装属性后:

class person{
//属性是成员变量
	private String name;
	private int age;
	//参数及方法内定义的是局部变量
	public void setName(String name){
		this.name = name;
	}
	public String getName(){
		return name;
	}	
}

成员变量和局部变量

1、在类中的位置不同
成员变量:在类中定义
局部变量:在方法中定义或方法的参数

2、在内存中的位置不同
成员变量:在堆内存中(成员变量属于对象,对象进堆内存)
局部变量:在栈内存中(局部变量数据方法,方法进栈内存)

3、生命周期不同
成员变量:随着对象的创建而存在,随着对象的销毁而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

4、初始化值不同
成员变量:有默认初始化值,引用类型初始化值为null
局部变量:没有默认初始化值,必须定义、赋值,才能使用。
注意:局部变量和成员变量名称可以一样,在方法的使用时采用的是就近原则。