【问题标题】:Call static method from another class without creating object in Java [duplicate]从另一个类调用静态方法而不在Java中创建对象[重复]
【发布时间】:2021-09-25 18:24:30
【问题描述】:

我们是否可以在不创建定义静态方法的类的对象的情况下访问另一个类中一个类中定义的静态方法?

class Test{
      public static int add(int a, int b){
        return a+b;
    }

}

public class Methods{
  
    public static void main(String[] args){
        System.out.println("The sum of 2 and 3 is: " + add(2,3));

    }
}

在这段代码 sn-p 中,当我尝试从 Methods 类中调用 Test 类中定义的 add 方法时,出现以下错误:

Methods.java:12: error: cannot find symbol
        System.out.println("The sum of 2 and 3 is: " + add(2,3));
                                                       ^
  symbol:   method add(int,int)
  location: class Methods
1 error

但是当我尝试使用Methods 中的Test 方法的对象调用静态方法时,它工作正常!

【问题讨论】:

  • Test.add(2,3)?
  • “使用Test方法的对象”是什么意思?
  • 我认为他的意思是这种可憎的东西:new Test().add(2, 3);

标签: java class oop methods static


【解决方案1】:

创建静态方法的重点是在不创建类实例的情况下访问它。但是需要引用类名,因为您正在其中定义方法。因此,在您的情况下,您需要 Test.add(a,b),其中 Test 是类的名称,而不是它的实例。

【讨论】:

    【解决方案2】:

    而不是做

    add(2,3)
    
    

    Test.add(2,3)
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 2018-12-19
      • 2015-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多