编辑代码

class Main {
	public static void main(String[] args) {
        //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
		System.out.println("Hello world!   - java.jsrun.net ");
        Person P=new Person();
        P.setName("左眼皮一直跳啊");
        P.setAge(130);
        P.setSalary(30000);

        System.out.println(P.info());
	}
}
/*
那么在java中如何实现这种类似的控制呢?
请大家看一个小程序(Encapsulation01.java),不能随便查看人的年龄,工资等隐私,
并对设置的年龄进行合理的验证。
年龄合理(1-120)就设置,否则给默认年龄18,
名字合理(长度 2-6 之间)就设置,否则给默认名字“大聪明”,
工资不能直接査看。
*/

class Person{
    public String name;
    private int age;
    private double salary;

    public void setName(String name){
        if( name.length()>=2 && name.length()<=6 ){ //判断名字:如果是合理范围
            this.name=name;
        } else {
            System.out.println("名字长度不对,需要2-6个字符之间,给一个默认名字大聪明");
            this.name= "大聪明";
        }
        
    }

    public String getName(){
        return name;
    }

    public void setAge(int age){
        if( age>=1 && age<=120){ // 判断年龄:如果是合理范围
            this.age=age;
        }else{
            System.out.println("你设置的年龄不对,需要在1-120之间,给一个默认年龄18!");
            this.age=18;
        }        
    }

    public int getAge(){
        return age;
    }

    public void setSalary(double salary){        
        this.salary=salary;
    }

    public double getSalary(){
        // 这里可以增加当前对象的权限判断,有权限则可以查看工资
        return salary;
    }

// 写一个方法,返回属性信息

    public String info(){
       return "姓名:"+ name + "\t年龄:"+ age +"\t工资:"+salary;
    }

}