2012-12-04 61 views
-1

我需要关于将类从一个文件移动到两个文件的进度。我的示例代码位于一个名为“external_class_file_main”的文件中。程序运行精细和代码如下所示:刷新独立文件中的Java类

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); 

    } 

} 

回答

1

您不再能够访问external_class_file_main cl中的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..."); 

} 

PS,你会发现这是一个容易得多,代码为人们阅读你的问题,如果你使用正确的Java命名约定为你的方法和类,例如没有下划线和大写字母开始上课。 http://en.wikipedia.org/wiki/Naming_convention_%28programming%29

+1

该方法是静态的,OP不需要创建'external_class_file'实例来访问该方法;) – Laf

3

您需要通过类external_class_file参考t get_a_random_number。例如:

int r; 
System.out.println("Program starting..."); 
r = external_class_file.get_a_random_number (1, 5); 

尽管你应该坚持使用Java命名约定。

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命名约定。