私有内部类不能通过外部类来创建吗

爪蛙爱踢程序猿 2014-12-23 05:15:16
class Parcel{
private class PContent{}
}

public class TestParcel{
Parcel p= new Parcel();
//!Parcel.pContent pc = p.new PContent();//Illegal--cant access private class
}

PContent不是允许被Parcel访问的吗
...全文
197 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
技术小黑屋 2014-12-24
  • 打赏
  • 举报
回复
推荐阅读一下这篇深入探究内部类问题的文章 http://droidyue.com/blog/2014/10/02/the-private-modifier-in-java/
  • 打赏
  • 举报
回复
引用 5 楼 anshiny 的回复:
[quote=引用 3 楼 u013992890 的回复:] Parcel.pContent pc = p.new PContent(); 这样写是不是属于被包裹的那个类创建
这一句出现在Parcel类的类体内是可以的。在类外面就不行了。 因为,pContent是Parcel的私有成员。[/quote] 但是在Thinks in java中却表示这样写是非法的
anshiny 2014-12-23
  • 打赏
  • 举报
回复
引用 3 楼 u013992890 的回复:
Parcel.pContent pc = p.new PContent(); 这样写是不是属于被包裹的那个类创建
这一句出现在Parcel类的类体内是可以的。在类外面就不行了。 因为,pContent是Parcel的私有成员。
蒲锦_up 2014-12-23
  • 打赏
  • 举报
回复
外部能访问对象的公共成员和属性。
  • 打赏
  • 举报
回复
引用 2 楼 soton_dolphin 的回复:
当然不可以。 它只能被包裹着它的那个类创建。
Parcel.pContent pc = p.new PContent(); 这样写是不是属于被包裹的那个类创建
soton_dolphin 2014-12-23
  • 打赏
  • 举报
回复
当然不可以。 它只能被包裹着它的那个类创建。
ss36290109 2014-12-23
  • 打赏
  • 举报
回复
private int i; 你能访问么? private 就是私有。。。

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧