2014-02-21 2 views
0

저는 초보자입니다. C++로 코딩하는 데 익숙했습니다. 클래스를 사용할 때는 별도의 파일로 정의한 다음 그 클래스를 다음과 같이 포함 시켰습니다. 내 주요 파일.다른 클래스의 다른 패키지에있는 클래스의 객체를 만드는 방법

소켓 프로그래밍을위한 스레드를 배우려고하므로 여러 서버 포트를 스레드로 열고 여러 클라이언트를 수용 할 수 있습니다. 나는 Java에서 파일 이름이 클래스 이름과 동일해야 함을 안다.

main.java에게

public class derived extends Thread 

    {  
      public void run() 

      { 

       System.out.println("starting a new thread"); 

    } 

    } 

가 어떻게 주에서 파생 된 클래스의 객체를 생성하고이를 포함 할 수

include derived.java; 

class main1 

{ 

    main1() 

     { 

      System.out.println("Constructor of main1 class."); 

     } 

    void main1_method() 
     { 

      System.out.println("method of main 1 class"); 
     } 

    public static void main(String[] args) 

     { 

      main1 my = new main1(); 
      Derived derivedThread = new Derived(); 
      derivedThread.start(); 

     } 
} 

derived.java :이 내가 할 노력하고 무엇인가 내 main1.java 파일에?

Java에서 클래스가 작동하는 방식과 함께 사용되어야하는 클래스 경로를 완전히 이해하지 못한다고 생각합니다. 내 네트워킹 프로젝트의 기한이 있으며 매우 늦어서 도와주세요!

+0

파일 이름은 동일합니다. main1.java – user3085866

+0

[여기에서 시작] (http://docs.oracle.com/javase/tutorial/java/concepts/class.html). 자바에서는'import name.of.package.className'로 가져옵니다. 전반적으로, 이것은 Java 클래스의 좋은 예가 아니며, 당신을 위해 작성하지 않아도,이를 수정하는 방법을 알려주는 것이 어렵습니다. 제가 링크 된 튜토리얼을보십시오. – turbo

+0

은'include derived.java;'파일의 일부입니까? 그게 유효한 자바 코드가 아니야 – exception1

답변

0

include derived.java; 사용할 필요가 없습니다. 다른 패키지에 파생 된 클래스가 있으면 가져 오기를 사용하십시오. Derived은 호출 및 선언하는 동안 다릅니다.

class main1  // Class name must start with Uppercase 
{ 
public static void main(String[] args) 
    { 
     main1 my = new main1(); // Can be remove 
     Derived derivedThread = new Derived(); 
     derivedThread.start(); 
     } 
} 


    public class derived extends Thread // Change derived to Derived 
--------------------^ 
    {  
     public void run() 
    { 
    System.out.println("starting a new thread"); 
    } 
} 

나는 생성자를 제거하고 사용되지 않는 방법이 하나 있습니다.

+0

나는 주 파일의 .java 파일에 별도로 작성된 클래스를 사용하여 객체를 만드는 방법을 배우고 싶습니다. – user3085866

+0

no cant는 – Kick

+0

을 이해합니다. 기본 패키지가있는 프로젝트가 있습니다. 기본 패키지에는 main1.java와 derived.java가 있습니다. main1.java.how에서 derived.java를 가져오고 싶습니다. 이 파생 가져 오기는 파생 클래스를 생성 한 당신은 파생 class.Java을 가져 오려는 – user3085866

1

파일을 삭제하고 이것을 시도, 이것은 자바에서 보는 방법입니다 :

파생 클래스 : Derived.java

public class Derived extends Thread {  
     public void run() { 
      System.out.println("starting a new thread"); 
     } 
} 

메인 1 클래스 : Main1.java

public class Main1 { 
     public Main1() { 
      System.out.println("Constructor of main1 class."); 
     } 

     void main1_method() { 
      System.out.println("method of main 1 class"); 
     } 

     public static void main(String[] args) { 
      Main1 my = new Main1(); 
      Derived derivedThread = new Derived(); 
      derivedThread.start(); 
     } 
} 

참고 :

1) 클래스 이름은 항상 대문자이므로 올바른 경우 파일 이름 이어야합니다. 또한 생성자와 생성자에 대한 호출은 모두 대문자이어야합니다.

2) 동일한 패키지에 클래스를 넣으면 가져올 필요가 없습니다. 패키지가 여러 개인 경우 다음과 같이 가져옵니다. import packageName.className;. 마지막에는 .java가 필요없고 엄격히 클래스 이름. 중첩 된 패키지를 가질 수도 있으므로 import java.util.ArrayList;과 같은 것을 볼 수 있습니다. 이것은 java 패키지 (내장)에있는 util 패키지에있는 ArrayList 클래스를 사용합니다. 더 작은 프로젝트에서 중첩 된 패키지를 만드는 것에 대해 많은 것을 걱정할 필요는 없습니다.하지만 그 개념입니다.

3) 유의 사항수정자를 Main1에 추가했고이 생성자를 추가했습니다. 클래스 변수뿐만 아니라 클래스 이름과 메소드에 수정자를 제공하는 것이 좋습니다. 수정 자에 대한 자세한 내용은 this SO Question을 참조하십시오. 초보자는 대부분 공공 및 사적에만 관심을 가져야합니다.

Java 연구에 도움이되고 행운이 있기를 바랍니다.

+0

고마워, 정말 도움이되었다. – user3085866

관련 문제