为什么要封装?
- 在类中定义属性的时候,一般需要把属性隐藏起来;
- 如果外界需要访问这个属性,那么就需要提供公共方法对其访问
public class Student {
//使用private关键字来修饰属性,不允许外部直接访问该属性
private String name;//属性的封装
//提供公共的setName方法,可以让外部调用该方法给name属性赋值
public void setName(String name){
this.name = name;//
}
//提供公共的getName方法,可以让外部调用该方法获取name属性的值
public String getName(){
return name;
}
//内部能直接访问属性
public static void main(String[] args) {
Student student = new Student();
System.out.println(student.name);
}
}
内部能直接访问name属性
外部不能直接访问name属性,需要用private修饰符修饰属性
private修饰符的特点:
- private是四种权限修饰符中的一种,并且是权限最小的一种;
- private可以修饰成员变量和成员方法;
- private修饰属性和方法,就只有当前类中才能访问,在当前类以外的其他地方,都不能访问;
- private修饰的属性,成为类中的私有属性,private修饰的方法,称为类的私有方法
封装的作用
- 提高代码的安全性,重要信息可以私有化,不对外暴露;
- 提高代码的复用性,常用代码或者功能封装到方法中,可以在其他地方反复使用;
- 简化外部的调用,便于调用者使用;
public class Phone {
private String number;
//修改电话号码显示139****2312格式
public String getNumber() {
return number.substring(0,3)+"****"+number.substring(7,11);
}
public void setNumber(String number) {
this.number = number;
}
}
public class Test {
public static void main(String[] args) {
Phone phone = new Phone();
phone.setNumber("11451415286");
System.out.println(phone.getNumber()); //输出结果为114****5286
}
}
常用代码或者功能封装到方法