【问题标题】:How do you create an instance variable to call a non-static method from another class?如何创建实例变量来调用另一个类的非静态方法?
【发布时间】:2022-09-23 15:47:17
【问题描述】:
class V
{
  void print_V(int number)
  {
    String v= \"v\";
    int count= number;
    System.out.print(\"Letter\" + v.repeat(count));
  }
  void print_V()
  {
    System.out.print(\"v\");
  }
  public static void call_Print_V(int n)
  {
    print_V(n);
  }
 }

class Main 
{
  public static void main(String[] args) 
  {
     v call_Print_V= new v();
     call_Print_V.print_V(input);
  }
 }

我尝试在互联网上搜索如何创建实例方法,但发现它们都没有帮助。我尝试以与我找到的示例类似的方式格式化实例方法,但我仍然无法调用我的方法。

  • 这看起来更像是 Java 而不是 JavaScript。

标签: java class oop


【解决方案1】:

尝试将您要调用的方法公开。我假设这是Java。 所以而不是:

void print_V()

做:

public void print_V()

默认情况下,类的方法是私有的。不能在其类范围之外调用私有方法。 另外,我会考虑不宣布公开或私人的不良做法。蛇案例也是如此,因此请阅读以下有关代码约定的文章。它使其他程序员的生活变得更加容易。 https://www.geeksforgeeks.org/java-naming-conventions/

【讨论】:

  • 未定义 Main 类型的 printV(int) 方法是我在 main 类中的第 5 行得到的错误。
【解决方案2】:

您正在尝试在非静态上下文中调用 print_V 。 给你的类一个构造函数并从构造函数调用方法。 此外,main 中的递归类初始化器调用只需

new v();

您可以将其中的类称为“this”(关键字),因此如果您为 System.exit() 创建 ondestroy 侦听器方法,则不需要参考

此外,输入变量看起来应该是来自主数组参数的 args[1] 以作为参数输入构造函数。

【讨论】:

    猜你喜欢
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多