对象私有成员的使用条件


一、本类中,或外部类中

public class Outer {
class Inner{
private int a = 5;

private void f(){
System.out.println("abc");
}
/*
* 一个类的私有成员在本类外部是不可见的,即使在本类外部创建了本类对象,也不能调用私有成员,除非开放了一个公有接口
* 一个类的内部类的私有成员在外部类获得内部类对象后是可以调用的

* 可以这样理解:
* 比方说两个独立的人张三和李四,李四有点石成金的技能
* 张三抓住了李四(相当于获得了李四这个对象),他强迫使用李四的点石成金的方法,但李四很有骨气,宁死也不给他用
* 最后迫于无奈,李四说我可以给你变金子,但必须答应我的某些条件..

* 如果李四是张三的忠心耿耿的手下
* 那么张三有了李四,就可以无条件的使用李四的点石成金

*/
}

public Inner getInner(){
// Inner inner = new Inner();
// return inner;
return this.new Inner();
}

public static void main(String[] args) {
Inner inner = new Outer().getInner();
System.out.println(inner.a);
inner.f();
}
}

二、其他类中

import day13.other.Outer.Inner;


public class Other {
public static void main(String[] args) {
Inner i = new Outer().getInner();
i.f(); //报错
System.out.println(i.a); //报错
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值