package com.hspedu.encap;
public class Encapsulation01 {
public static void main(String[] args) {
Person person = new Person();
person.setName("jackfsfasfafasfa");
person.setAge(3000);
person.setSalary(30000);
System.out.println(person.info());
System.out.println(person.getSalary());
}
}
/那么在java中如何实现这种类似的控制呢?请大家看一个小程序(com. hspedu.encap
: Encapsulation01.java),不能随便查看人的年龄,工资等隐私,并对
设置的年龄进行合理的验证。年龄合理就设置,否则给默认年龄,必须在
1-120,年龄,王资不能直接查看, name的长度在2-6字符之间/
class Person {
public String name;//名字公开
private int age;//age私有化
private double salary;
public String getName() {
return name;
}
public void setName(String name) {
//加入对数据的校验,相当于增加了业务逻辑
if(name.length() >= 2 && name.length() <= 6) {
this.name = name;
}else {
System.out.println("名字的长度不对,需要(2-6)个字符,默认名字");
this.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");
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;
}
}
代码的最后return最后一行为什么能返回那么多东西,不是说return只能返回一个值吗?