提问人:Swapnil Mishra 提问时间:11/5/2023 更新时间:11/6/2023 访问量:78
谁将成为没有对象的类的方法调用者?
Who will be the method invoker of a Class with no object?
问:
在面向对象编程中,“调用者”是指在另一个对象上启动/调用方法或函数执行的对象或代码。但我的问题是,如果一个类只有方法(静态)而没有对象,那么谁将成为该方法的调用者怎么办?
我想问的示例代码:
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public static void main(String[] args) {
//Creating an instance of the Calculator class
Calculator calc = new Calculator();
// Invoking the "add" method with the invoker (calc)
int result = calc.add(5, 3);
/*
The "calc" object is the invoker, and it invokes the "add" method with arguments
5 and 3.
but what if there was no calc object in the calculator class
who would have been the invoker of the method then?
how would you have then called the add() method? by making it static ?
and calling it directly? if yes, who would be invoker of that static add() method?
*/
System.out.println("Result of addition: " + result);
}
}
答:
1赞
Dimitris Dranidis
11/5/2023
#1
在一个类中,可以有两种类型的方法:实例方法和类(或静态)方法。若要调用实例方法,请使用类的实例(对象)来调用该方法,就像在示例中所做的那样。若要调用类方法,请使用类名来调用该方法。
以你为例:
public class Calculator {
public static int add(int a, int b) {
return a + b;
}
}
public static void main(String[] args) {
System.out.println(Calculator.add(5,3));
}
方法被声明为 我们使用类名来调用它。add
static
Calculator
在 Calculator 类中,没有状态,没有属性。通常,没有状态的类将只有静态方法,因为该方法的行为不依赖于任何状态。
上一个:类方法/异步问题?
评论
oracle.com
的这个教程。calc