1)随便查看个人的年纪,工资等隐私,并对设置的年龄进行合理验证,年龄 合理就设置,否则输出error,工资和年龄不能直接查看,name 的长度在2-4之间
要求使用构造器对各属性进行初始化,同时也要对初始化的变量范围进行验证
package ex;
public class ex2 {
public static void main(String args[]) {
person t = new person(4,46,"egd");
System.out.println(t.info());
}
}
class person{
private int age;
private double salary;
public String name;
public person(int age,double salary,String name) {
setage(age);//将Set方法写到构造器中,这样就能验证
setname(name);
setsalary(salary);
}
public void setage(int age)
{
if(age>18&&age<100)
this.age=age;
else
System.out.println("age is erro");
}
public void setname(String name) {
if(name.length()>2&&name.length()<4)
this.name=name;
else
System.out.println("name is error");
}
public void setsalary(double salary) {
this.salary=salary;
}
public String getname() {
return name;
}
public int getage() {
return age;
}
public double getsalary()
{
return salary;
}
public String info() {
return "name="+name+"\t"+"age="+age+"\t"+"salary="+salary;
}
}
输出结果:age is erro
name=egd age=0 salary=46.0
疑惑:这个age既然不符合题意为啥输出还是0,是因为初始化之后赋给它一个默认值吗
2)
package ex;
public class accounttest {
public static void main(String args[]) {
account a =new account("1",3,"12345");
System.out.print(a.info());
}
}
class account{
//为了封装,将三个属性均设置为private
private String name;
private double balance;
private String key ;
//设置两个构造器,一个空一个含参
//两个构造器都可以用,用空的时候,接收就get方法,用含参的也行
public account() {
}//空构造器
public account(String name,double balance,String key) {
setname(name);//让方法生效
setbalance(balance);
setkey(key);
}
public void setname(String name) {
if(name.length()==2||name.length()==3||name.length()==4)
this.name=name;
else
this.name="无名";
}
public void setbalance(double balance) {
if(balance > 20)
this.balance=balance;
else
this.balance=-1;
}
public void setkey(String key) {
if(key.length()==6)
this.key=key;
else
this.key="0000000";
}
public String getname() {
return name;
}
public double getbalance() {
return balance;
}
public String getkey() {
return key;
}
public String info() {
return "name="+name+"\t"+"balance="+balance+"\t"+"key="+key;
}
}
输出结果:
name=无名 balance=-1.0 key=0000000