1、encapsulation封装就是把抽象的数据【属性】和对数据的操作【方法】封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作【方法】,才能对数据进行操作。
就像打开电视的过程啦。
封装的好处:隐藏实现的细节【方法(连接数据库)】。可以对数据进行验证,保证安全合理。
封装的步骤
有快捷键的啊
alt + insert
package com.wag.encap;
public class Encapsulation {
public static void main(String[] args) {
Persion persion = new Persion("smith",18,5800);
persion.setName("jwk");
persion.setAge(25);
persion.setSalary(3000);
System.out.println(persion.info());
System.out.println(persion.getName());
}
}
//根据要求完善要求
class Persion {
public String name;
private int age;
private double salary;
//将构造器和继承在一起使用,将set***,卸载构造器里面
public Persion(String name, int age, double salary) {
this.name = name;
this.age = age;
this.salary = salary;
setAge(age);
setName(name);
setSalary(salary);
}
public void setName(String name) {
//加入对数据的校验
if (name.length() >= 2 && name.length() <= 6) {
this.name = name;
} else {
System.out.println("名字不符合");
this.name = "小猪";
}
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age >= 1 && age <= 120) {
this.age = age;
} else {
System.out.println("年龄需要在1-120岁,给一个默认年龄18岁");
this.age = 18;
}
}
public double getSalary() {
//可以增加对当前权限的判断
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
//写一个信息,返回属性信息
public String info() {
return "信息为 name = " + name + " " + "age = " + age + "salary = " + salary;
}
}