属性赋值方式: 1. 对象.属性 = (限制为当时声明属性的类型,除此之外没有任何限制) 2. 写一个赋值方法现在想要对某个属性的赋值增加额外的赋值条件,比如不能为负值 可以写一个方法,并且禁用对象.属性方法,这个禁用可以通过权限修饰符private实现
属性赋值方法:
1. 对象.属性 = (限制为为当时声明属性的类型,除此之外没有任何限制)
2. 写一个赋值方法
现在想要对某个属性的赋值增加额外的赋值条件,比如不能为负值
可以写一个方法,并且禁用对象.属性方法,这个禁用可以通过权限修饰符private实现
代码如下:
// 利用封装性限制属性赋值
public class AnimalTest {
public static void main(String[] args){
Animal a = new Animal();
a.name = "灰灰";
a.age = 1;
// a.legs = -4;
a.setLegs(4); // 限制为非负且为偶数
a.show();
}
}
class Animal{
String name;
int age;
private int legs; // 让类外不允许直接调用,只能类内访问
public void setLegs(int l){
// 传入一个参数,看是否符合条件,若符合给legs属性进行赋值
if(l >= 0 && l % 2 == 0){
legs = l;
}else {
legs = 0;
// 或者抛出一个异常,还没学习
}
}
public void show(){
System.out.println("name = "+ name + ",age = "+ age + ",legs=" + legs);
}
}
(没有加入方法时)
使用方法后可以进行简单的控制