类的封装
封装的目的是为了保证变量的安全性,通过外部接口即可访问类的成员,如果不进行封装,类中的实例变量可以直接查看和修改,可能给整个代码带来不好的影响,因此在编写类时一般将成员变量私有化,外部类需要使用Getter和Setter方法来查看和设置变量。
例如:
public class Person {
private int age;//属性只能自己访问
private String sex;
private String name;
public Person(int age, String sex, String name) {
this.age = age;
this.sex = sex;
this.name = name;
}
public int getAge() {
return age;
}
public String getSex() {
return sex;
}
public String getName() {//外部需要知道这个这个对象的名字只能通过getName(),并且不能修改
return name;
}
}
外部只能通过getName()方法来获取名字
public static void main(String[] args) {
Person person = new Person(10,"男","张三");
System.out.println(person.getName());
}
外部只能通过我定义的方法来获取数据,并且要满足方法中的操作,比如 如果年龄大于20,就无法修改
public void setAge(int age) {
if (age > 20) return;
this.age = age;
}
也可以将构造方法改成私有的,只能通过我们创建的内部方法来构造对象
private Person() {
}
public static Person getInstance(){
return new Person();
}
public static void main(String[] args) {
Person person = Person.getInstance();
System.out.println(person.getAge());
}
封装思想其实就是把实现细节给隐藏了,外部只需知道这个方法是什么作用,而无需关心实现,要用什么由类自己来做,不需要外面来操作类内部的东西去完成,封装就是通过访问权限控制来实现的。