2010-05-27 3 views

답변

18

클래스에 속합니다. 안녕하세요 - 세계 구현을 보면 당신에게 분명합니다.

public static void main(String[] args) { 
    System.out.println("Hello World"); 
} 

은 그대로 컴파일되지 않습니다. 이 경우 class HelloWorld { ... }을 입력해야합니다.이 경우 메인 메서드가 HelloWorld 클래스에 속한다고 말할 수 있습니다.

그러나 정적 인이기 때문에 은 특정 개체에 속하지 않습니다. 객체 지향 언어로 작업 할 때 익숙해 져야 할 클래스와 객체 사이에는 중요한 차이가 있습니다. Learning Java: Objects and Classes은 좋은 출발점입니다.

+0

지금은 – billu

+4

+1, 좋은 캐치 - 문제는 '클래스'와 '객체'에 대한 이해였습니다! –

2

모든 Java 코드 행 (가져 오기/패키지 제외)은 클래스에 있거나 (클래스/인터페이스 선언입니다). main도 마찬가지입니다.

+5

'import' 또는'package'는 어떻게됩니까? ;-) –

+0

편집 됨. 감사. – miku

+1

댓글은 어떻게됩니까? ;-) –

3

예. 모든 메소드 또는 필드는 클래스 (또는 인터페이스/열거 형)에 속해야합니다.

1

Java에서 모든 응용 프로그램은 모든 클래스에서 main 메서드를 가져야합니다. 그리고 정확히 수식이어야합니다 :

더보기 in official lessons을 참조하십시오.

+1

웹 응용 프로그램을 응용 프로그램으로 계산하면 사실이 아닙니다. 웹 애플리케이션은'main' 메소드를 필요로하지 않습니다. –

+1

그러나 웹 응용 프로그램을 실행하려면'main()'메소드가 실행되어 있어야합니다 ... 단지 작성하지 않아도됩니다. – Dolph

2

모든 클래스에 속하는지 여부는 해당되지 않습니다. 그것은 당신이 그것을 정의하는 클래스에 속합니다.

그러나 모든 클래스는 정적 main 메서드를 가질 수 있습니다.

0

main 메소드가 main 메소드를 정의하는 클래스에 속하는 특정 클래스에 속하는 것과 같지 않습니다. 모든 클래스가 될 수 있습니다.

1

java의 모든 클래스는 public static void main (String [] args)을 가질 수 있습니다. 클래스 내에서 선언 된 주요 함수 (다른 정적 메서드와 마찬가지로)는 클래스 정의에 속하지만 인스턴스화 인스턴스에는 속하지 않습니다.

당신이 클래스의 컬렉션에서 JAR 파일을 작성하는 경우에는

Main-Class: fully qualified name of class (example: ie.mycode.MyApp) 

를 사용하여 META-INF/MANIFEST.MF에서 응용 프로그램의 주요 방법을 포함하는 JAR 내에있는 클래스를 지정할 수 있습니다 때를 명령을 실행하십시오

java -jar [your jar file] 

그것은 매니페스트를보고 메인 클래스 개체에 대해 메인에 지정된 코드를 실행하기 시작합니다. 앞서 언급 한 바와 같이

1

, 그것은 클래스, 에서 일부가 아닌 모든 클래스입니다

하여 "unnammed" or "default" package의 클래스, 당신은 주요 방법은 주요 방법이 초기 클래스에서 call any other Java classes로하지 않을 경우().
작동 할 수 있지만 실제로는 main 방법으로 수행 할 수있는 작업이 상당히 제한됩니다.

0

main 정상적인 방법 (기본 패키지에없는 일; 전자 전)

그래서 어떤 클래스를 사용하지 마십시오. 유일한 관행은 자바가 응용 프로그램을 '시작'하기 위해이 방법을 사용할 수 있다는 것입니다. 클래스를 java.exe에 전달하면이 메소드를 반영하려고 시도합니다 (그 때문에 메소드 서명이 절대적으로 엄격합니다!). 이것은 사실 '응용 프로그램을 시작합니다'(iaw : 첫 번째 스레드).

1

모든 메소드와 마찬가지로 클래스에 속해야하며 컴파일 후 실행하려는 클래스에 있어야합니다.

프로그램은 main 메소드가있는 클래스 실행하여 시작할 수 있습니다 (참고 :.이 Java 응용 프로그램의 대부분의 유형에 대한 applicale입니다 애플릿, 예를 들어, 작업 다르게)

0

우리는 그 클래스를 실행하려고 오류가 exception in thread main이 일어날 수 있다고 이유 경로는 다음

Exception in thread main: classdefnotfound........ 

주요 만약 우리가 다음 실행해야하는 클래스에 속하는 아래와 같은 에러/예외 뭔가를 얻을 JVM에 알 수없는 경우에만 스레드 주 실행 중입니다.

1

Java의 main 메소드는 클래스에 속하지만 Object에는 속하지 않습니다. 개체는 런타임에 만들어집니다. 따라서 Java의 main() 메인이 응용 프로그램의 시작 지점이기 때문에 인스턴스 별 메서드에서 응용 프로그램을 시작할 수있는 방법이 없습니다. 그렇기 때문에 static 키워드가 기본 방법으로 완벽하게 이해됩니다. 당신은 'JVM'와 주요 방법은 무엇을 그림과 같이 생각하면 실제로 주요 메소드 선언의 모든 부분은 (응용 프로그램을 시작) 완벽한 이해 :

  • public을,이 방법은 액세스 할 수 있어야하기 때문에 jvm (당신이 쓰지 않은).
  • static이 방법은 객체를 사용하지 않고 액세스 할 수 있음을 의미합니다 (변경 사항이 표시되지 않으므로). 그러나 여기에서 논리는 jvm을 다시 생각하면 쉽게 이해할 수 있습니다. "객체를 생성 (인스턴스화) 할 객체가 없으므로 인스턴스 메서드를 가져 오는 논리적 인 방법이 아직 없기 때문에 정적 메서드가 필요합니다. 아직 개체를 만들 수 없습니다. "
  • void 아무 것도 반환하지 않아이 메서드는 논리적으로 아무 것도 반환 할 수 없습니다. 응용 프로그램의 시작 지점입니다.
  • main 나 없이는 응용 프로그램을 사용할 수없는 주요 방법입니다.
  • String[] args 내 시동에 유용하다고 생각되는 데이터를 보내주십시오.
관련 문제