标题: 一个小问题,可我一直想不明白 [打印本页] 作者: xiwangliujiao 时间: 2012-4-26 10:50 标题: 一个小问题,可我一直想不明白 public class Person {
private int age;
void speak(){
System.out.println("age:="+age);
}
}
public class PersonDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p=new Person();
//p.age=-20;
p.speak();
}
},在方法p.speak()中访问的不就是私有变量age吗?为什么这样可以访问到呢?作者: 光sail 时间: 2012-4-26 10:57
在方法p.speak()中访问到私有变量age,是因为使用变量age所在类Person的对象p去调用的,所以能访问到作者: 张亭 时间: 2012-4-26 11:06
age是Person的私有成员, 只有Person内成员可以访问
speak()方法不正是Person内的成员函数么?当然可以访问
主函数中建立一个Person的对象,在主函数中只能访问speak()
而不能直接访问age变量,如System.out.println(p.age);
这样的代码是通不过编译的,这就是私有的意思喽
另外,一个源文件中是不可以有两个public 类的 作者: 马浩 时间: 2012-4-26 12:23
public class Person {
private int age;//age虽然被私有化,但确能被本类中的方法访问
void speak(){
System.out.println("age:="+age);//这个方法可以访问私有化的age
}
}
public class PersonDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p=new Person();
//p.age=-20;
p.speak();//产生的对象p调用了speak()
}