我正在完成一项学校任务,现在我有点困惑。有人可以指出问题所以我可以从中吸取教训。所以这就是:
这是一个从英里到公里和副verca的简单计算。这就是我所拥有的:
public class Kilometer {
static double mijlToKilometer(double mijl) {
double kilometer = 1.609 * mijl;
return kilometer;
}
static double kilometerToMijl(double kilometer) {
double mijl = 0.622 * kilometer;
return mijl;
}
}
这是主要的:
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner input = new Scanner(System.in);
System.out.println("mijl?");
double mijl = input.nextDouble();
Kilometer eenBerekening = new Kilometer();
eenBerekening.mijl = mijl;
eenBerekening.mijlToKilometer();
System.out.println("kilometer?");
double kilometer = input.nextDouble();
eenBerekening.kilometer = kilometer;
eenBerekening.kilometerToMijl();
}
}
我有“import java.util.Scanner;”这不是那样的。 Netbeans在这些方面提出了一个问题:
Kilometer eenBerekening = new Kilometer();
eenBerekening.mijl = mijl;
eenBerekening.mijlToKilometer();
帮助任何人? Thx提前!!
更新 所以这就是我现在所拥有的,而且它正在发挥作用。感谢所有人的帮助!!!
Kilometer.java
public class Kilometer {
static double mijlToKilometer(double mijl) {
double kilometer = 1.609 * mijl;
System.out.println(kilometer);
return kilometer;
}
static double kilometerToMijl(double kilometer) {
double mijl = 0.622 * kilometer;
System.out.println(mijl);
return mijl;
}
}
Main.java
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("mijl?");
double mijl = input.nextDouble();
Kilometer.mijlToKilometer(mijl);
System.out.println("kilometer?");
double kilometer = input.nextDouble();
Kilometer.kilometerToMijl(kilometer);
}
}
答案 0 :(得分:2)
您的班级Kilometer
没有名为mijl
的字段,这就是编译器抱怨的原因。
答案 1 :(得分:1)
您的mijl
课程中没有Kilometer
属性。正如其他人所指出的那样,Kilometer
方法是静态的。只需从类中调用它,您就不需要实例:
Kilometer.mijlToKilometer(mijl);
答案 2 :(得分:1)
Kilometer eenBerekening = new Kilometer(); eenBerekening.mijl = mijl;
您正在创建类Kilometer
的实例,并分配给该类中未定义的属性。
eenBerekening.kilometerToMijl();
在这里,您在实例上调用static
方法,并且无法传递所需的参数。
答案 3 :(得分:1)
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner input = new Scanner(System.in);
System.out.println("mijl?");
double mijl = input.nextDouble();
Kilometer eenBerekening = new Kilometer();
Kilometer.mijlToKilometer(mijl); //calling static class and passing parameter to function
System.out.println("kilometer?");
double kilometer = input.nextDouble();
Kilometer.kilometerToMijl(kilometer); // same as before but other function
}
}
答案 4 :(得分:0)
当您实际使用实例调用它们时,您正在使用关键字static
作为方法声明。
另外,您尝试设置
eenBerekening.mijl = mijl;
虽然您的课程中没有课程参数mijl
。只需使用
eenBerekening.mijlToKilometer(mijl);
答案 5 :(得分:0)
你有静态方法。这些方法属于Class-Level而不是实例级,因此您必须调用:
Kilometer.mijlToKilometer()
答案 6 :(得分:0)
由于您已将这些方法声明为静态,因此您不需要Kilometer实例来使用它们,您可以这样做:
Kilometer.mijlToKilometer(12.02)
答案 7 :(得分:0)
static
,因此您无需new
。mijl
课程中没有Kilometer
字段,公开或其他字段。static
上的Kilometer
方法需要参数,但您的代码不会传递参数。所以:
double mijl = input.nextDouble();
double kilometer = Kilometer.mijlToKilometer(mijl);