2012-10-22 7 views
1

동일한 패키지에 파일, main.java 및 다른 여러 파일이 있습니다. 각 파일은 something.class이고, 나는 그것을 실행하고 싶습니다만, something.java 파일로부터 클래스를 인스턴스화하는 방법을 찾는데 문제가 있습니다. 나는 자바에 익숙하지 않다.이 글은 필자가 작성한 두 번째 프로그램이다. 내가 사용하고있는 파일의자바 클래스 인스턴스화

하나는 여기 startmessage.java, 그리고 것은 내가 무엇을 시도했다입니다 : 그 올바른 만약 내가 알지도 못하는

Object StartMessage = new StartMessage();

. 모든 도움이 매우 감사하게 생각합니다.

+1

정확히 무엇이 문제입니까? –

+0

직면 한 문제는 무엇입니까? – kosa

+0

이 자습서로 시작할 수 있습니다. - http://docs.oracle.com/javase/tutorial/java/javaOO/classes.html –

답변

0

사례가 중요합니다. 파일이 정말 startmessage.java라고, 당신이 그것을 컴파일했습니다, 그리고 당신이 만들고 인스턴스하려면

, 다음 시도 :

startmessage sm = new startmessage(); 
0

을 당신은 자바 클래스를 '가져가 그래서 같이

package <package_name> 

import <location_of_class> 

: 코드 전반에 걸쳐 활용하고 싶습니다 impor의에

package michael; 

import parent.child.*; //use any method with * 

유용한 링크를 ts 및 패키지 : http://www.leepoint.net/notes-java/language/10basics/import.html

0

Java에서 파일의 이름은 정확하게 클래스 이름 뒤에 지정해야합니다. 대부분의 경우 대소 문자를 구분하는 규칙입니다. 확인 해봐.

0

코드 세그먼트가 컴파일됩니다 (기본 생성자가 포함 된 StartMessage 클래스가 있다고 가정).하지만 반드시 정확하지는 않습니다. 일반적으로 다음과 같은 방식으로 개체를 선언 할 것이다 :

이 디자인으로
<type> <name> = new <type>(<args>); 

, 당신의 코드 세그먼트는 다음과 같은 형태로 더 정확한 것 :

StartMessage message = new StartMessage(); 

그러나, StartMessage는 서브 클래스이기 때문에 객체의 이름과 변수의 이름을 거의 모두 지정할 수 있으므로 원래 코드가 잘 컴파일됩니다.

2

클래스 파일은 컴파일 된 클래스입니다. Java 클래스의 소스 코드는 일반적으로 자신의 이름을 따서 명명 된 파일로 이동합니다. 예를 들어, startmessage 클래스의 경우 StartMessage.java를 사용합니다.

다른 파일에서 클래스를 가져온 다음 해당 유형의 개체를 인스턴스화 할 수 있습니다. 예를 들어

:

package example; 
import StartMessage; 
public class Example { 

    public static void main (String args[]) { 
     StartMessage startMessage = new StartMessage(); 
    } 
} 
0

: 클래스)는 주요 방법이 있어야이 을 실행하고는 두 번째 문제를 들어 명령 자바 http://www2.cs.uic.edu/~sloan/CLASSES/java/

  • 를 사용하여 실행할 수 있습니다, 다음 튜토리얼에서 봐 주시기 바랍니다 먼저 파일 이름이 클래스 이름과 정확히 일치해야합니다.

    public class startmessage { } 
    

    을하지만 이름의 자바 클래스에 방법이 아니다 : 파일 startmessage.java라는 이름의 경우 예컨대 들어 : 당신은 클래스 다음과 같아야합니다. 적절한 방법은 다음과 같습니다 당신이 이런 식으로 할 경우

    StartMessage message = new StartMessage(); 
    

    :

    Object message = new StartMessage(); 
    

    당신은에 액세스 할 수 없습니다

    public class StartMessage {} 
    

    이 같이해야하는 클래스의 인스턴스를 StartMessage 클래스의 메소드. 유일한 방법은 Object 클래스에서 사용할 수 있습니다.

  • 0

    인스턴스를 생성하여 클래스를 인스턴스화 (생성) 할 수 있습니다. 예를 들어 :

    Hello from method 1 
    Hello from method 2 
    

    질문에 예에 따라, 당신은 대신 객체의 StartMessage를 사용한다, 예를 들면 :

    public class MyClass 
    { 
        public void myMethod1() {System.out.println("Hello from method 1");} 
        public void myMethod2() {System.out.println("Hello from method 2");} 
    } 
    
    public class Runner 
    { 
        public static void main(String[] args) 
        { 
        // declare variable of type MyClass 
        MyClass myInstance = new MyClass(); 
    
        // now execute its methods 
        myInstance.myMethod1(); 
    
        myInstance.myMethod2(); 
        } 
    } 
    

    이 콘솔의 출력을 생성

    StartMessage myVariable = new StartMessage(); 
    
    관련 문제