2014-10-03 6 views
0

두 개 이상의 클래스를 하나의 파일에 포함하려고 시도하지만 Java에서이 오류 메시지를 나에게 throw합니다. 2 개 이상의 파일을 1 개의 파일에 포함하려면 어떻게해야합니까?Java - 동일한 파일에 2 개의 클래스를 포함시키는 방법은 무엇입니까?

Exception in thread "main" java.lang.ExceptionInInitializerError 
    at javaapp.main(javaapp.java:25) 
Caused by: java.lang.RuntimeException: Uncompilable source code - class functions1 is public, should be declared in a file named functions1.java 
    at functions1.<clinit>(javaapp.java:11) 
    ... 1 more 
Java Result: 1 



public class functions1 { 
    public String Print(String text){ 
     System.out.println(text); 
     return text; 
    } 
} 

public class javaapp { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 
     functions1 Func = new functions1(); 
     Func.Print("You're learning Java!!!!!"); 


    } 

} 
+0

어느 만드는 하나 개의 클래스 중첩 된 클래스가 될 것입니다, 또는 두 가지에 넣어 어디에 더 나은 옵션입니다 내부 클래스를 사용한다 파일. –

답변

2

Juned 아산의 대답은 잘하지만 동일한 2 개 클래스를 사용하려는 경우 파일 하나 옵션이 있습니다. inner class을 사용하십시오. 이 샘플을

public class OuterClass { 
    int outerVariable = 100; 

    class InnerClass { 
     int innerVariable = 20; 

     int someMethod(int parameter) { 
      //Do something. 
     }  
    } 

    public static void main(String[] args) { 
     OuterClass outer = new OuterClass(); 
     InnerClass inner = outer.new InnerClass(); 
     System.out.println(inner.someMethod(3)); 
    } 
} 

을 확인 또한 오라클에서 this을 확인합니다.

+0

고마워, 정말 고마워! 지금 자바를 배우는 중이 야 조금 혼란스러워했다! – MaoKnight

+0

반갑습니다. downvote에 대해 유감을 느끼지 마십시오. 당신이 원하는 것을 물어보고 다른 사람들에게 답을 공유하십시오. 그러면 StackOverflower가 될 수 있습니다. –

+1

고마워요. 정말 고마워요. – MaoKnight

1

컴파일 단위 또는 .java 파일에는 하나의 공용 클래스 만있을 수 있습니다. 당신이 당신 functions1 클래스 중 대중 지정을하는 경우 코드는 원하는 출력을 제공한다

public class functions1 { 

변환

class functions1 { 
+0

... 고마워! – MaoKnight

-1

선생님 당신은 당신이 개인적으로 당신 클래스 필드에 액세스 할 수 있으며 클래스 코드가 다른 별도의

+0

내부 클래스에는 용도가 있지만 멀리있을 것입니다. 그것을 "더 나은"옵션이라고 부르는 것. – Makoto

관련 문제