【问题标题】:How to call private method by other methods?如何通过其他方法调用私有方法?
【发布时间】:2013-01-23 16:27:57
【问题描述】:

我对通过属于同一个 class.Once 的另一个方法(公共)调用私有方法感到困惑我被告知我必须创建该类的一个对象,然后通过该对象调用私有方法,但在我的一个这个论坛的问题有人告诉我我不需要使用对象。

public class Train() {

    private void method1{......method definition..... }

    public void method2{......how to invoke method1??}

}

我可以简单地使用method1(); 在第二个方法中调用第一个方法,还是应该通过创建类的对象和Object_of_Train.method1(); 来调用它。

我应该使用哪一个?

【问题讨论】:

  • 这是什么语言? (我认为他们的意思是说您需要类的 instance 来调用该方法,因为非静态方法对类的实例进行操作。您通常不开车,而是开车 a汽车。所以如果你想开车,你需要a汽车。)
  • 它是 java.so 如果这两个方法都是公共的,那么我可以在不需要对象的情况下从另一个调用一个,但在这种情况下,因为第一个方法是私有的,我必须使用那个对象类能够从方法 2 调用它???
  • 没有车就不能开车。这不是保护问题,而是方法的逻辑问题——在类的实例上调用实例方法。

标签: methods call private invoke


【解决方案1】:

在类中你应该可以调用method1();

在类之外,您需要从该类的实例中调用它,并且只能访问公共方法

【讨论】:

  • 所以你的意思是,如果方法在同一个类中,即使其中一个或两个是私有的,也可以在不需要对象的情况下被另一个调用,对吧?
  • 我们在谈论java吗?在同一类中,公共和私人对您没有任何影响。似乎让您感到困惑的是静态的使用,您可能想研究一下。
  • 是的,它是关于 java 的。我很困惑,因为我被告知在主方法中我必须创建同一个类的对象,以便我可以调用这个类的方法。这就是为什么我认为这也应该应用于其他方法类。所以我们可以说,如果一个类中有多个方法,并且如果我想用另一个调用其中一个,它们是否是私有的并不重要,我可以通过使用类似method1的名称来调用它们(); ....当我们在同一个类中调用时,它们是静态的还是非静态的并不重要,对吗?
  • 我认为向您提出的建议是关于创建实例引用以从公共静态方法中使用。示例:YourClass.instanceObject.nonStaticMethod()
  • 是的,你是对的。它适用于 public static void main(String args[]) 但对于非静态的我不需要使用类的对象。它没有给出如果我只是通过方法名称来调用它,则会出错。您能告诉我原因吗?为什么我们需要使用一个对象通过静态方法调用同一个类的方法?
【解决方案2】:

使用 this.method1(); 从 method2() 或类中的任何其他非静态方法调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 2014-12-14
    • 2018-05-03
    相关资源
    最近更新 更多