所以,我编写了一个代码,它应该采用两个整数-f和s(第一个和第二个) - 并返回总和。 Eclipse并不像我在做什么,所以我改变了我的代码并添加了一些getter和setter - 我对此非常不熟悉。我让Eclipse创建了我的getter和setter。我的代码仍然无效,但我不知道为什么。
这是:
public class Main extends Comp{
public static void main(String[] args){
Comp.give(getF(), getS());
}
}
import java.util.Scanner;
//Feel the rhythm
//Feel the rhyme
//Come on Eclipse
//It's coding time!!!
public class Comp {
private int f;
private int s;
public void look(){
Scanner iscan = new Scanner(System.in);
setF(iscan.nextInt());
setS(iscan.nextInt());
iscan.close();
}
public static void give(int f, int s) {
System.out.println(f+s);
}
public int getS() {
return s;
}
public void setS(int s) {
this.s = s;
}
public int getF() {
return f;
}
public void setF(int f) {
this.f = f;
}
}
问题 - Eclipse用红色标记了getF(),getS()(仅限主要方法)。当我将鼠标悬停在它上面时,它会将getF()更改为静态[getS()相同],但我不希望它是静态的。
它也使用了this.f和this.f.我知道这意味着什么,但不太好。对此的解释会很棒。
答案 0 :(得分:3)
this.f
指的是f
类中的实例变量Comp
。由于setF(int f)
的参数也称为f
,因此this
有助于区分这两者。它基本上是说“将方法参数f
分配给我的实例变量f
”。
至于错误,您需要将getF()
和getS()
设为静态,或者在Comp
中创建main
课程的实例并将其称为两个使用它的方法:
public static void main(String[] args){
Comp comp = new Comp();
Comp.give(comp.getF(), comp.getS());
}