所以我通过大量资源在线查看了Java接口.我相信我对它们有一个很好的了解但是在编程时我有点困惑......
我创建了一个名为A的接口,内部有以下内容......
public interface A {
public int sum(int first, int second);
}
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个名为B的类.
public class B implements A {
public static void main(String [] args){
int result = sum(3, 5);
}
public int sum(int first, int second) {
int total = first + second;
return total;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想弄清楚的是我如何正确调用/使用方法"sum".在Eclipse中,我收到行"int result = sum(3,5);"的错误 它告诉我要使方法静态.如果我将其设置为静态,则该方法需要在界面中匹配它.但是,我无法在界面中使用静态方法?
感谢任何帮助,感谢您抽出时间阅读我的问题.
你遇到的问题不是接口而是static方法.
main是一种static方法.这意味着它没有链接到对象/实例,而是链接到类本身.
由于您要使用sum(实例方法),因此首先需要创建一个对象来调用其方法.
A a = new B();
int result = a.sum(5, 6);
Run Code Online (Sandbox Code Playgroud)
通常,实例方法更多地链接到对象状态,而静态方法更像是非OO语言中的"过程".在这种情况下sum,您的方法将更有意义,因为静态.但是,如果您使用B包装值(状态),并使用sum添加到您的内部状态,这将结束(以更友好的方式).
A a = new B(5);
a.sum(6);
int result = a.getValue();
Run Code Online (Sandbox Code Playgroud)
请注意,这两种方法都是有效的,并且都是用Java编译的,只需选择在每种情况下更有意义的修饰符.
| 归档时间: |
|
| 查看次数: |
701 次 |
| 最近记录: |