2017-06-06 119 views
-3

如何访问私有类中的私有方法?访问私有类中的私有方法

我的代码:

public class OuterClass { 

    private InnerClass ic; 

    public OuterClass(){ //Constructor 
     this.ic = new InnerClass(); 
    } 

    public InnerClass getInnerClass(){ 
     return this.ic; 
    } 

    private class InnerClass { 
     private VeryInnerClass vic; 

     private void InnerClass(){ 
      this.vic = new VeryInnerClass(); 
     } 

     private void method(Object item){ 
      //Job 
     } 

     private class VeryInnerClass { 
      private Object item; 

      private void VeryInnerClass(){ 
       //Constructor 
      } 

     }//End VeryInnerClass 

    }//End InnerClass 

}//End OuterClass 

这是主代码:

public class Main { 

    public static void main(String[] args) { 

     OuterClass oc = new OuterClass(); 
     Object item = new Object(); 

     oc.getInnerClass().method(item); 

    } 

} 

的错误是类型OuterClass.InnerClass是不可见的,但我用一个getInnerClass()方法,所以我不不知道如何访问method(Object item)

+4

你确定你知道'private'是什么意思吗? – tnw

+1

私有方法永远不能从其拥有的对象之外访问。如果你想访问'method',你必须公开它。 – Korashen

+1

你可以通过反射来调用它。 –

回答

1

不,你不能。

私人修饰符指定了成员只能在自己的类访问

所以,如果你想访问私有方法,那么你应该与publicprotected定义它们没有修饰符取决于在这种情况下更合适的。

查看更多资讯doc

+0

'公众“是不需要的。有'保护'和没有修饰符访问。根据用途,可能比另一种更合适。 –

+0

@ChristopherSchneider是的你是对的。我会修改我的答案。 –

0

您不能直接访问类的范围之外的私有方法/私有内部类。