菜鸟求解面向对象中封装为什么会运行出这个结果。
--------------------编程问答-------------------- PersonDemo vs. personDemo --------------------编程问答-------------------- setAge()方法中年龄为-40的时候没有给age赋值,然后speak中打印age的值出错了吧 --------------------编程问答-------------------- 二楼似乎是正解,运行的类是personDemo,但是你编译的类是PersonDemo,首字母大小写啊,有木有。 --------------------编程问答-------------------- class PersonDemo --------------------编程问答-------------------- 好像每天都会有大小写错误的提问 二楼正解啊 JAVA第一节课就讲注意大小写 使用方法到API中复制 O(∩_∩)O哈哈~ --------------------编程问答-------------------- 这是定义类名的问题,你定义的是class personDemo而命令窗口运行的是java PersonDemo--------------------编程问答-------------------- 感觉封装有点奇怪:
--------------------编程问答-------------------- public class Person{
public class TestTop {
private int age ;
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ATSSD a = new ATSSD();
int [] num = a.name();
for (int sk : num){
System.out.println(sk);
}
}
}
class ATSSD {
public int[] name() {
TestTop test=new TestTop();
test.setAge(20);//设置值
int [] t = new int[2];
t[0]=test.getAge();//获取值:test.getAge();
t[1]=test.getAge();
return t;
}
}
private int age;
public void setAge(int a){
if(a>0 && a<130)
{
age=a;
}else{
System.out.println("ErrorAge");
}
}
public int getAge(){
return age;
}
public void speak(){
System.out.println("age="+age);
}
public static void main(String[] args){
Person p=new Person();
p.setAge(-40);
p.speak();
}
}
//在doc 环境下 输入:javac Person.java java Person
补充:Java , Java SE