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

问题描述

classParcel{privateclassPContent{}}publicclassTestParcel{Parcelp=newParcel();//!Parcel.pContentpc=p.newPContent();//Illegal--cantaccessprivateclass}PContent不是允许被Parcel访问的吗

解决方案

解决方案二:
privateinti;你能访问么?private就是私有。。。
解决方案三:
当然不可以。它只能被包裹着它的那个类创建。
解决方案四:
引用2楼soton_dolphin的回复:

当然不可以。它只能被包裹着它的那个类创建。

Parcel.pContentpc=p.newPContent();这样写是不是属于被包裹的那个类创建
解决方案五:
外部能访问对象的公共成员和属性。
解决方案六:
引用3楼u013992890的回复:

Parcel.pContentpc=p.newPContent();这样写是不是属于被包裹的那个类创建

这一句出现在Parcel类的类体内是可以的。在类外面就不行了。因为,pContent是Parcel的私有成员。
解决方案七:
引用5楼anshiny的回复:

Quote: 引用3楼u013992890的回复:
Parcel.pContentpc=p.newPContent();这样写是不是属于被包裹的那个类创建

这一句出现在Parcel类的类体内是可以的。在类外面就不行了。因为,pContent是Parcel的私有成员。

但是在Thinksinjava中却表示这样写是非法的
解决方案八:
推荐阅读一下这篇深入探究内部类问题的文章

时间: 2024-12-03 01:02:08

私有内部类不能通过外部类来创建吗的相关文章

java 内部类-为什么外部类能访问内部类的私有成员?

问题描述 为什么外部类能访问内部类的私有成员? 在学习单例时发现,外部类可以访问内部类的私有成员 如下面代码所示: //Initialization on Demand Holder class Singleton { private Singleton() { } private static class HolderClass { private final static Singleton instance = new Singleton(); } public static Single

java 内部类-在外部类中为什么可以直接访问内部类的私有成员?

问题描述 在外部类中为什么可以直接访问内部类的私有成员? 在外部类中为什么可以直接访问内部类的私有成员?比如,root=root.next,这条语句出现在外部类的方法中,这里,root是定义在外部类中的一个内部类对象,而next是root对象的一个私有属性,为什么可以这样写? 解决方案 内部类是一个特例,相当于友元类(java本身没有友元这个概念) 从语法的角度来说,这样做是方便的.封装性主要是避免调用者随意操作对象的私有成员,调用他们不知道的代码引起问题.但是你定义了外部类,显然内部类也是你定

内部类引用局部变量与外部类成员变量的问题思考

昨天有一个比较爱思考的同事和我提起一个问题:为什么匿名内部类使用的局部变量和参数需要final修饰,而外部类的成员变量则不用?对这个问题我一直作为默认的语法了,木有仔细想过为什么(在分析完后有点印象在哪本书上看到过,但是就是没有找到,难道是我的幻觉?呵呵).虽然没有想过,但是还是借着之前研究过字节码的基础上,分析了一些,感觉上是找到了一些答案,分享一下:也希望有大牛给指出一些不足的地方. 假如我们有以下的代码: interface Printer {      public void print

java-Java静态内部类怎么调用外部类的泛型

问题描述 Java静态内部类怎么调用外部类的泛型 Java静态内部类怎么调用外部类的泛型,2个泛型可以名字一样,但是没有任何关系啊....... 解决方案 http://zhidao.baidu.com/link?url=GkDla2jig8PJLNVmNocRJCFgYmDCJx-xmnCdIpjk16jhFGwsWusJIkevnmN-UpOxyJopRo0kj3o-lWrsBKQVbCrdUPnqfUNyqep_Az8pARm 解决方案二: Java 内部类与静态类外部类 调用内部类Jav

java-怎样创建一个同名外部类的对象?

问题描述 怎样创建一个同名外部类的对象? class A { class B{}//甲 } class B{}//乙 因为重名,在A中只能创建甲的对象, 请问怎样在A中创建乙的对象? 解决方案 恭喜你,你已成功把我搞晕了.现在已经不知道你想问什么了 解决方案二: 怎么在外部类的静态方法中创建成员内部类的对象? 解决方案三: class A{ public void showA(){ System.out.println("A类"); } class B{ public void sho

自定义view-自定义View,用外部类定义OnKeyListener监听器,但是在AVD打不开,内部类的方式可以

问题描述 自定义View,用外部类定义OnKeyListener监听器,但是在AVD打不开,内部类的方式可以 public class MainActivity extends Activity { private int speed = 10; PlaneView planeView = new PlaneView(null); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(saved

java内部类 引用外部类对象this问题

问题描述 java内部类 引用外部类对象this问题 在内部类里,想引用外部类的对象,为什么是外部类.this而不是外部类加引用变量,还有.操作应该是成员操作符吧,这样this不就成了外部类成员了 解决方案 你好,实际上我们代指当前类对象的this是个简写形式,完整的形式就是 类名字.this,举个例子来说吧 class OuterClass { private String outAttribute = "我是外部类属性"; public void printOutAttribute

内部类和外部类的一个问题

问题描述 class Car{class Wheel{}}class PlaneWheel extends Car.Wheel{PlaneWheel(Car car){car.super();//这里怎么理解??}public static void main(String[] args){Car car=new Car();PlaneWheel pw=new PlaneWheel(car);}} 解决方案 也许下面代码更有说服力:引用class Car {public Car() {super

python中的嵌套类(内部类调用外部类中的方法函数)

在为书中版本是3.X的,但2.X不太支持直接调用. 所以,在PYTHON2.X中,要在内部类中调用外部类的方法,就必须得实例化外部类,然后,传入实例进行调用. 花了我两个小时啊,资料没找到,自己一个一个想法调试,真的失败了三四十次,PRINT了N多~~~:) ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 4