我需要复习将类从一个文件移动到两个文件中。我的示例代码位于一个名为“ external_class_file_main ”的文件中。程序运行正常,代码如下所示:
Public class external_class_file_main {
public static int get_a_random_number (int min, int max) {
int n;
n = (int)(Math.random() * (max - min +1)) + min;
return (n);
}
public static void main(String[] args) {
int r;
System.out.println("Program starting...");
r = get_a_random_number (1, 5);
System.out.println("random number = " + r);
System.out.println("Program ending...");
}
}
我将 get_a_random_number 类移动到名为“ external_class_file ”的单独文件中。当我这样做时,我收到以下错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method get_a_random_number(int, int) is undefined for the type
external_class_file_main
at external_class_file_main.main(external_class_file_main.java:20)
“ external_class_file_main ”现在包含:
public class external_class_file_main {
public static void main(String[] args) {
int r;
System.out.println("Program starting...");
r = get_a_random_number (1, 5);
System.out.println("random number = " + r);
System.out.println("Program ending...");
}
}
“ external_class_file ”现在包含:
public class external_class_file {
public static int get_a_random_number (int min, int max) {
int n;
n = (int)(Math.random() * (max - min +1)) + min;
return (n);
}
}
答案 0 :(得分:3)
您需要通过课程get_a_random_number
推荐external_class_file
。 E.g:
int r;
System.out.println("Program starting...");
r = external_class_file.get_a_random_number (1, 5);
你应该坚持使用Java命名约定。
答案 1 :(得分:1)
您无法再访问external_class_file_main类中的get_a_random_number方法。由于您需要的方法是静态的,您可以直接引用它,如下所示:
public static void main(String[] args) {
int r;
System.out.println("Program starting...");
r = external_class_file.get_a_random_number (1, 5);
System.out.println("random number = " + r);
System.out.println("Program ending...");
}
如果你对你的方法和类使用适当的Java命名约定,你会发现代码和阅读问题的人会容易得多,例如:没有下划线并以大写字母开始上课。 http://en.wikipedia.org/wiki/Naming_convention_%28programming%29
答案 2 :(得分:1)
这里是解决方案:
public class external_class_file_main {
public static void main(String[] args) {
int r;
System.out.println("Program starting...");
r = external_class_file.get_a_random_number (1, 5);
System.out.println("random number = " + r);
System.out.println("Program ending...");
}
}
但是,请看一下Java命名约定。