大家好,我是教授.F
欢迎大家关注我的微信公众号:《教头编程象行记》
封装的作用是将数据和方法封装在一个类中,并对外部隐藏对象的内部细节。这样做可以保护数据不受外部直接访问和修改,只能通过类提供的接口进行访问,提高了代码的安全性和可维护性。
一个简单的例子:一个账号的密码是不能直接被别人看到的,所以对于密码这个属性就要封装。
此外,还可以将用户输入的密码进行判断,我们可以要求有密码要包括什么、不要包括什么和要密码长度要求……
上代码演示:
public class Test {
public static void main(String[] args) {
package_ package_ = new package_("007", "1008611");
System.out.println(package_.id);
//调用时,进行身份验证
System.out.println(package_.showInfo());
}
}
import java.util.Scanner;
public class package_ {
public String id;
private String password;//私有属性
public package_(String id, String password) {
this.id = id;
setPassword(password);//在setPassword方法中,判断密码输入是否符合要求
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
if (password.length() < 6){
System.out.println("密码太短,请重新输入");
return ;
}
this.password = password;
}
public String showInfo(){
System.out.println("请输入验证码,验证身份");
Scanner myScanner = new Scanner(System.in);
String check = myScanner.nextLine();
if(check.equals("111")){
return getId() + "\t" + getPassword();
}
return "验证错误";
}
}
上面的例子可以看到,id信息是可以直接调用输出的,不用用到方法,但passwo就不行了。其实也可以破解,如果我们使用构造器指定属性,就会直接绕过防护机制。(只要使用构造器就可以破解)所以在构造器中,我们常常加上一个验证码,进行验证身份。