HardTech
[Java]#3 Hello, Java 의 소스를 분석해보자! 본문
안녕하세요! HardTech의 프로그래머 HostUnknown입니다!
얼마 만에 글을 쓰는 건지 모르겠네요..
3주가 귀차니즘의 세계로 버려졌으니...
자! 2강에서는 Hello, Java! 소스입력, 컴파일, 실행 등을 배웠었죠? 이번에는 그 프로그램의 소스 해석을 해보겠습니다!
일단은 밑에 소스
|
소스 그냥 글로 쓰면 안 예뻐서 이렇게 바꿔봤습니다!
|
이렇게 하면?
컴파일 할 때 class 파일이 2개가 생깁니다.
class 파일이 2개 생겼으면 둘 중에 아무거나 실행시켜도 되나?
그러면 안됩니다.
main 메소드가 있는 class 파일을 실행시켜야 프로그램이 동작합니다.
여기서!!
메소드란?
C언어의 '함수'와 같은 개념입니다.
main 메소드는 소스에 없으면 프로그램이 실행 조차 되지 않습니다.
그리고 main 메소드는 프로그램을 실행하면 가장 먼저 실행되는 메소드입니다.
그 다음에 main 메소드 안에서 다른 메소드를 호출하면 다른 메소드로 넘어갑니다.
그러면 프로그램의 흐름이 main에서 끊기지 않고 계속 가겠죠?
메소드는 이 정도 설명이면 됩니다.
그리고 main 메소드 앞에 붙은 public static void 라는 키워드들이 있습니다.
이건 또 뭐시당가?
public은 어느 클래스에서든 건들 수 있는 메소드입니다.
main 메소드에는 꼭 public이 붙어야 합니다. 이유는?
다른 프로그램에서 내가 만든 main 메소드를 호출하는 것이 아니라 Java에서 호출하는 것이라 public으로 Java의 main 메소드 호출을 허용해 주어야 합니다. 그래서 public이 꼭 들어가야
합니다.
그리고 Java 소스코드 안에는 무조건 public 키워드가 붙은 메소드가 하나 씩은 있어야 합니다.
그리고 class hellojava 앞에도 원래 public이 붙어야 합니다.
지금은 다른 class를 생성하지 않아서 괜찮은데 다른 class들이 hellojava class를 건드릴 수 있게
하려면 class 앞에 public을 붙여야 합니다. public class hellojava 이렇게 말입니다.
그럼 반대로 private는?
이 키워드가 메소드 앞에 붙으면 다른 클래스에서는 그 메소드를 건드릴 수 없습니다.
한 마디로 호출을 못한다는 얘기죠.
static은 또 뭐지?
static이 메소드 앞에 붙으면 그 메소드가 메모리에 가장 먼저 로딩이 됩니다.
이게 무슨 뜻인가? 아까 main 메소드는 가장 먼저 Java에서 호출한다고 말했습니다.
그러므로 main이 가장 먼저 실행되게 하려면 static을 붙여서 메모리에 가장 먼저
로딩시켜야겠죠?
void는?
반환 값을 의미하는데 main 메소드는 반환 값이 없으므로 void를 앞에 붙입니다.
꼭 다른 거 말고 void를 붙여야 합니다!
여기까지 키워드 설명이었습니다.
main 뒤에 있는 (String args[])는 또 뭘까요?
이것은 명령행 인자라고 합니다.
java hellojava 라고 실행시켰을 때 그 뒤에 옵션을 또 붙일 수 있습니다.
java hellojava aaa 이렇게 말입니다.
그러면 그 옵션이 args에 들어갑니다. 프로그래머는 args에서 옵션들을 빼서 쓰면 됩니다.
System.out.println은 당연히 문자를 출력해주는 메소드입니다.
그런데 System.out.print로 한다면?
줄바꿈이 되지 않습니다. 되도록 ln을 붙이는 게 좋습니다.
드디어 소스 분석이 끝났습니다!
다음 시간에는 변수에 대해 배워보겠습니다!
^^
작성자 : [HardTech][프로그래머]HostUnknown
'프로그래밍 > 자바 [JAVA]' 카테고리의 다른 글
[JAVA]#6 조건문에 대해서 배워보자! (2) | 2016.12.02 |
---|---|
[Java]#5 Scanner? 이건 뭐지? (7) | 2016.12.01 |
[Java]#4 변수에 대해 배워보자! (0) | 2016.11.30 |
[Java]#2 Hello, Java! (0) | 2016.11.15 |
[Java]#1 JDK 설치하기 (2) | 2016.11.08 |