小弟刚刚接触JAVA,进几天在学习封装和构造方法等面向对象的特征,但有一处不太明白了例如有一个类public class Pracetice {
private String name;
private int age;
public Pracetice(){}
public Pracetice(String name,int age){
this.name = name;
this.age = age;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
if(age >100 || age < 10){
this.age = 20;
}else{
this.age = age;
}
}
}我用方法对属性进行封装后,如果在实例化时用带参构造的话,那setAge()方法对属性的限制就没用了啊不知道实际当中程序员对类的封装和构造是怎么写的?
private String name;
private int age;
public Pracetice(){}
public Pracetice(String name,int age){
this.name = name;
this.age = age;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
if(age >100 || age < 10){
this.age = 20;
}else{
this.age = age;
}
}
}我用方法对属性进行封装后,如果在实例化时用带参构造的话,那setAge()方法对属性的限制就没用了啊不知道实际当中程序员对类的封装和构造是怎么写的?
在我的理解,实例化一个类,它的各个属性的值就是拿来用的,所以当用带参构造实例化后,以后就用get方法拿来用就行了,那这样set方法的限制就没用了
public Pracetice(String name,int age){
setName(name);
setAge(age);
}