首页 > 同一个类产生的两个对象能访问私有数据吗?

同一个类产生的两个对象能访问私有数据吗?

在comf方法中,this.num==d.num;为什么d能访问自己的num值呢?不是私有了吗?

class Demo {

private int num;
Demo(int num){
    this.num=num;    
}

public boolean com(Demo d){
    
        return this.num==d.num;

}

}
class Test {

public static void main(String[] args){
    Demo d1 = new Demo(22);
    
    Demo d2 = new Demo(33);
    
    System.out.println(d1.com(d2));
}

}


private表示一个类的私有属性,只能在本类中访问到,在其他的类中无法进行访问。private的访问控制是针对类来检查的,而非对象。


对象本身肯定能访问自己本身所有属性,包括私有属性,不然,还在要这些属性干嘛?


同学,本类中你可以无视访问权限修饰词。 记住是本类!


private是私有权限,无法通过对象+属性即abc.a来引用。
如果想要比较,使用getter方法,在Demo类中加入

public int getNum(){
    return num;
}
//比较
d1.com(d2.getNum());

举个例子解释,私有私有,就是自己有,自己有的东西自己当然能访问;
private的作用域就是把这个属性限制在本类对象里面,对象是类的具体实现,就像小明这个人是Farther这个类的具体体现,他有权保护自己的小秘密(隐私),而继承了Farther类的Son类也无法访问父亲的小秘密

【热门文章】
【热门文章】