一、
封装就是隐藏实现细节,仅对外提供访问接口
封装有:
属性的封装、方法的封装、类的封装、组件的封装、模块化封装、系统封装
例:
属性的封装
//没有封装之前
//如果属性没有封装,那么在本类之外创建对象后,可以直接访问属性
class Person{
//属性的封装
String name;
int age;
}
//进行属性封装
//private关键词:访问权限修饰符,public表示共有,private表示私有
//公有的属性和方法,可以被类外部的其他类访问,想要在类外部访问私有属性,我们需要提供公有的方法来间接访问
class Person{
//属性的封装
private String name;//成员变量,在类中定义
private int age;//成员变量,在类中定义
//对外提供一个为name属性设值的方法
public void setName(String name){
this.name = name;
}
//对外提供一个获取name属性的方法
public String getName(){
return name;
}
//对外提供一个为age属性设值的方法
public void setAge(String age){
this.age = age;
}
//对外提供一个获取age属性的方法
public String getAge(){
return age;
}
}
备注:通常在一个类中,属性都私有化,并对外提供getter and setter方法
二、
成员变量和局部变量
1、在类中的位置不同
成员变量:在类中定义
局部变量:在方法中定义或者方法的参数
2、在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存
3、初始化值不同
成员变量:有默认初始化值,引用类型默认为null
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用
注意:局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则