【问题标题】:How to update another class's method?如何更新另一个类的方法?
【发布时间】:2013-02-07 19:44:55
【问题描述】:

有两个类(Home 类和 Away 类)。 Away 类有一个名为 update 的方法,而 update 方法有一些参数(语音、写作、阅读),它们的值在 Home 类中分配。这些值会动态变化'。 我从 Home 类调用此更新方法时遇到问题,你能给我举个例子吗?这是我尝试做的:

public class Away
{ 
    private void method1(String speech)
    {
        //.......definition of the method......
    }

    private void method2(String writing)
    {
        //.....definition of the method......
    }

    private void method3(String reading)
    {
        //......definition of the method......
    }

    public void update(String speech, String writing, String reading)
    {
        Away away_object = new Away(String speech, String writing, String reading);
        away_object.method2(speech);
        away_object.method3(writing);
        away_object.method4(reading);
    }
}

我尝试在下面的 Home 类中调用此更新方法,但我不知道如何更改此更新方法的参数。因为这些参数在 Home 类中具有动态值。我应该创建一个构造函数,或者如何我可以更新这个“update()”方法吗?

Away object2 = new Away(); 

object2.update(speech, writing, reading);

我期待听到您的回复,我急需...提前非常感谢您...

【问题讨论】:

  • 很难理解您要做什么或问题是什么。在您的Home 对象的Update 函数中,您成功地创建了Away 对象的实例并在其上调用函数。然后在Home 上的update 函数完成后,该实例将超出范围。这不是本意吗?
  • 等一下,对不起...我以为显示的课程是Home。这是Away。为什么Away 创建自己类型的新实例并调用它?为什么不直接调用当前实例上的函数呢?你想在这里完成什么?作为一个人为的例子,这很难理解。
  • 嗨,David,由于我是 Java 的新手,我想我应该创建一个 Away 类的实例,以便能够从同一个类中的另一个方法调用属于该类的私有方法。我的目标是创建一个方法(更新),其中包括同一类的其他方法,并且每当其他类(即 Home)发生变化时,必须更新值。

标签: methods constructor arguments private


【解决方案1】:

在 Away 类中的公共更新函数中,您似乎正在实例化 away 类本身的另一个副本。

改变你的功能:

从这里:

public void update(String speech, String writing, String reading)
{
    Away away_object = new Away(String speech, String writing, String reading);
    away_object.method2(speech);
    away_object.method3(writing);
    away_object.method4(reading);
}

到这里:

public void update(String speech, String writing, String reading)
{
    method2(speech);
    method3(writing);
    method4(reading);
}

【讨论】:

  • 您好 rbruceporter,谢谢您的回复。但是我的主要问题是将更新传递给 Away 类。因为语音、写作和阅读变量是在 Home 类中创建并分配动态值的。我创建 update() 方法的原因是将属于 Away 类的所有方法都包含在一个方法中,这样我就可以从 Home 类中调用该方法并传递该方法的语音、读取和写入值,由于该方法包含 Away 类的其他方法,因此更新它们将很容易。您明白我的意思了吗?非常感谢您的回复并等待您的回复
  • 而且我在从 Home 类调用这个 update() 方法时缺少某些东西,因为我总是得到一个错误。我的意思是这不起作用:Away object2 = new Away(); object2.update(演讲、写作、阅读);我应该创建一个构造函数还是添加一些参数,我不知道该怎么做
  • 顺便说一句,以下属于 Home 类:Away object2 = new Away(); object2.update(演讲、写作、阅读);
  • 我想我不确定你在问什么。如果您按照建议进行编辑,并且正如 David 上面提到的那样,Home 类可以成功实例化 Away 类并调用具有所需结果的更新方法。我认为你需要改写问题,这样我们才能更好地理解你在问什么。
猜你喜欢
  • 1970-01-01
  • 2011-07-02
  • 1970-01-01
  • 2020-10-22
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多