先上源码
封装类
package cn.sxt.oo2;
/**
* 测试封装
* @author Mr.Z
*
*/
public class TestFengZhuang4 {
private int id;
private String name;
private int age;
private boolean man;
public void setName(String name) {
this.name =name;
}
public String getName() {
return this.name;
}
public void setAge(int age) {this.age=age;
if (age>=1&&age<=130) {
this.age=age;
System.out.println("这是儿童。");
}else {
System.out.println("输入正确的年龄。");
}
}
public int getAge() {
return this.age;
}
}
这是调用的
package cn.sxt.oo2;
/**
* 测试封装
* @author Administrator
*
*/
public class TestFengZhuang {
public static void main(String[]args) {
Human1 h=new Human1();
// h.age =13; //仅Human类可使用
// h.name="QQ";
h.name="QQ";
h.height=170;
TestFengZhuang4 f4=new TestFengZhuang4();
// f4.age=10;
// f4.setAge(10);
f4.setAge(-13);
System.out.println(f4.getAge());
}
}
class boy extends Human1 {
void syaHello() {
// System.out.printlm(age); //子类无法使用父类的私有属性和方法
}
}
当我把f4.setAge(10);注释掉的时候输出结果

当我把f4.setAge(-14);注释掉输出就没错

为什么不是想老师 那样输出0?