Discuss / Java / 不能理解为什么private的属性还能调用?

不能理解为什么private的属性还能调用?

Topic source

young

#1 Created at ... [Delete] [Delete and Lock User]
public class Student {
    private int id;
    private String name;
    private int score;

    public Student copy() {
        Student std = new Student();
        std.id = this.id;
        std.name = this.name;
        std.score = this.score;
        return std;
    }
}

在copy()中,为什么std变量还能调用id,name,score属性,std.id,std.name....呢?这个属性不是private吗?

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

其实在内存里,不管是public还是private,都是一个地址而已。

语法规定class内部代码可以调用private,外部代码可以调用public,只是编译器防止人犯错。

这就是对象的普通方法阿,如果自己都不能调用private的变量,那private谁都用不了,那也就没有存在的必要了。


  • 1

Reply