java - 同一个类产生的两个对象能访问私有数据吗?
伊谢尔伦
伊谢尔伦 2017-04-17 17:21:37
[Java讨论组]

在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));
}

}

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(5)
PHP中文网

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

迷茫

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

大家讲道理

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

public int getNum(){
    return num;
}
//比较
d1.com(d2.getNum());
大家讲道理

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

黄舟

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号