![f63b7a934d90e6c5fd38dda7dbb61f51.png](https://i-blog.csdnimg.cn/blog_migrate/b42be0d580f40374444ef0341c29d651.jpeg)
概念:将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法,来实现对隐藏信息的操作和访问。
优点:
- 良好的封装能够减少耦合;
- 类内部的结构可以自由修改;
- 可以对成员变量进行更精确的控制;
- 隐藏信息,实现细节。
实现Java封装的步骤:
- 修改属性的可见性来限制对属性的访问(一般限制为private)。
- 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问。
![22aba3e6613a89d5679ab33b40fbce7d.png](https://i-blog.csdnimg.cn/blog_migrate/46002c001629b297ed952ed528792dbe.jpeg)
Java封装类的实例:
public class EncapTest{
private String name;
private String idNum;
private int age;
public int getAge(){
return age;
}
public String getName(){
return name;
}
public String getIdNum(){
return idNum;
}
public void setAge( int newAge){
age = newAge;
}
public void setName(String newName){
name = newName;
}
public void setIdNum(String newId){
idNum = newId;
}
}
以上实例中public方法是外部类访问该类成员变量的入口,通常情况下,这些方法被称为Getter和Setter方法。因此,任何要访问类中私有成员变量的类都要通过这些Getter和Setter方法。
public class RunEncap{
public static void main(String args[]){
EncapTest encap = new EncapTest();
encap.setName("James");
encap.setAge(20);
encap.setIdNum("12343ms");
System.out.print("Name:" + encap.getName() + " Age:" + encap.getAge());
}
}
运行结果:
Name:James Age:20
Android Studio自动生成Getter和Setter方法——
1. 新建一个Bean类,如EncapTest;
2. 创建私有属性,权限修饰符为private;
![cf8548e910e9a1440401ccb8d65c943b.png](https://i-blog.csdnimg.cn/blog_migrate/d088c86465a2dd483feccbc5a6133423.jpeg)
3. 快捷键Alt+Ins;
![102947d45fdb3517489457458b7a7397.png](https://i-blog.csdnimg.cn/blog_migrate/de3af5f90fa4adb58b160d7b129d0da9.jpeg)
4. 选择Getter和Setter;
![4db84c6af68031b285177aa24081b8df.png](https://i-blog.csdnimg.cn/blog_migrate/0110c9cbfac0ed5c4adb7b77cbd59e8e.jpeg)
5. 选择要封装的属性,点击确定,自定生成Getter和Setter方法完成。
![b07d47e449534edd921304f542d99f06.png](https://i-blog.csdnimg.cn/blog_migrate/f4ae493e85a1e538e931ea9e1be7155b.jpeg)
自动生成完毕