package goharrm;
public class Outer {
static class StaticInner {
public static void main(String[] args) {
System.out.println("main method of Static inner class is running");
}
}
public static void main(String[] args) {
System.out.println("main method of outer class is running");
}
}
내부 클래스에 대한 질문을 계속 올리는 난바 님이 제목과 같은 질문을 올렸다.
사실 뭐가 문제냐는 질문이지만 특별히 문제가 없다.
코드는 다음과 같다.
콘솔에서 실행
이전 글인 [Java] Inner clsss의 접근 범위 를 읽어보면 inner class는 별도의 클래스 파일이 생긴다는 것을 알게 되었을 것이다.
따라서 main 함수는 각각 클래스 파일에 담기기 때문에 엔트리 포인트가 겹쳐서 문제가 발생할 일은 없다.
다만 주의 해야 할점은 윈도우의 경우 $가 별로 중요한 의미를 가지고 있지 않기에 그냥 써도 되나,
리눅스나 mac OS의 경우에는 역슬래시로 이스케이핑 해주어야 한다.(스크린 샷처럼)
IntelliJ IDEA 에서 실행
인텔리 제이는 각각 엔트리 포인트(main 함수)를 실행하는 것이 간편한데, 문법을 인식해서 실행 가능한 곳에 Play 아이콘 같은 녹색 삼각형버튼이 생기기 때문이다.
eclipse 에서 실행
반면 이클립스는 좀 불편하긴 하지만 역시 취사 선택이 가능하다.
클래스를 찍고 오른쪽을 누르고 나오는 팝업 메뉴에서 Run As > Java Application 을 선택하면,
엔트리 포인트를 선택할 수 있는 창이 뜬다.
따라서 뭐가 틀리고 맞고의 문제가 아니다.
'Programing > JVM(Java, Kotlin)' 카테고리의 다른 글
[Java] Date vs LocalDateTime (0) | 2019.05.15 |
---|---|
[Java] ArithmeticException 는 누가 던지는 것인가? (0) | 2019.05.09 |
[Java] Inner clsss의 접근 범위 (0) | 2019.05.03 |
[Java] 통화 표준 및 통화코드 그리고 Currency 클래스 (0) | 2019.05.03 |
[Java] Class 생성 실험 (0) | 2019.04.01 |