자바/자바기초

[자바] 1화 public static void main(String[] args)

khao 2016. 3. 6. 21:03

이클립스 설치는 다른 분들의 블로그를 참조해서 설치하시면 됩니다. (요즘은 폰으로 배우시겠다는 분들도 많아서 IDE의 선택이 워낙 다양한지라.)

(IDE: 통합 개발 환경의 약자입니다. 메모장의 경우 소스를 입력할 수 있지만 컴파일은 불가능하죠. 컴파일러만 있으면 소스 입력은 불가능하고요. 통합 개발 환경이라는 말은 메모장+컴파일러+디버거 이 세 가지를 합쳐놓은 프로그램이라 생각하시면 편합니다.)

 

제 포스팅의 편의를 위해 깔려있는 이클립스를 사용하며 설명 이해는 이클립스를 쓰실 때 가장 편합니다.

 

 

 

workspace를 지정하고 Welcome 팝업(?)을 업애면 이 화면과 비슷한 화면이 뜹니다.

좌측에 있는 Package Explorer 아래의 넓은 하얀 판을 우클릭하시면

 

 

 

이렇게 뜹니다. 정확히는 New에 마우스 올리셔야 이렇게 뜨죠. 우리는 자바 프로그래밍을 하므로 Java Project를 누릅니다.

 

 

 

대충 프로젝트의 이름을 정하고 Finish를 누릅니다.

 

 

 

 

이런식으로 프로젝트가 만들어집니다. 위에서는 Project_NAME이라고 써놨지만 사실 전 JAVA_1이라고 썼습니다.

src위에 마우스 우클릭하신 뒤 New - Class 를 누르셔서 클래스를 하나 만드시면 됩니다.

(Class란 자바에서 프로그램의 단위입니다. 게임을 예로 들 경우, Player클래스나 Slime클래스를 연상하면 쉽습니다.)

저는 클래스 이름을 java_1라고 썼습니다. (참고로 클래스 이름은 첫 글자 대문자가 좋아요. 전 이미 글렀기 때문에 소문자로..)

 

자, 클래스까지 만드셨다면(그리고 클래스 이름이 java_1이라면) 여러분은 아래와 같은 소스를 보실 수 있습니다.

public class java_1 { }

위의 소스를 아래처럼 바꿔봅시다.

 

 

public class java_1 { public static void main(String[] args) { } }

 

C에서 int main(void)를 선언했다면, 자바에서는 public static void main(String[] args)를 선언합니다.

C에 비해 상당히 길지만 이해하면 어렵지 않습니다.

 

public. 접근 제한자이며 public말고도 protected default private가 있습니다.

(default는 아무 것도 쓰지 않을 경우 자동으로 default로 처리합니다.)

 

static. 전역 변수로 만들어줍니다. 또한 static이 붙으면 램에 먼저 올라갑니다.

(main함수는 프로그램의 시작점이기 때문에 램에 가장 먼저 올라가 있어야 합니다.)

static을 쓸 경우 정적 메소드라 하여 이후에 다룰 '객체'를 선언하지 않아도 사용할 수 있습니다.

 

void. C에서와 같은 의미입니다. 반환값을 갖지 않습니다.

(만약 void 외의 자료형을 선언하면 기본 메소드는 void형을 사용해야 한다고 오류 문구를 출력합니다.)

 

main. 자바에서 나타내는 시작점의 이름입니다. 다른 이름으로 사용하면 자바가 알아먹지 못합니다.

(프로그램의 시작점을 못 찾기 때문에 프로그램이 작동되지 않습니다.)

 

(String[] args). 많은 분들이 사실 String[] args를 그냥 씁니다.(하지만 의미는 있습니다.)

args는 arguments의 약자이며 그저 그런 변수명이므로 asdf처럼 취향따라 바꿔서 써도 무방합니다.

args는 띄어쓰기(스페이스 바)를 분리자로 인식하는 문자열 배열입니다.

즉, I am John이라고 쓰면 I는 args[0],  am은 args[1],  John은 args[2]가 됩니다.

(배열이란 비슷한 자료형을 쉽게 모아서 사용할 수 있도록 만든 자료형의 일종입니다.)

 

흔한 Hello World 대신에 (String[] args)를 이해할 수 있는 소스를 작성해보겠습니다.

 

public class java_1 {   public static void main(String[] args) {     System.out.println(args[0] + args[1]);   } }

위와 같이 소스를 작성했다면 이제 Export를 하여 jar형식의 실행파일로 만들어야 합니다. 

(IDE 내에서 run을 통해 테스트하는 방법은 불가능합니다.)

Package Explorer에서 현재 진행하고 있는 프로젝트를 우클릭한 후 중간 쯤에 있는 Export를 누릅니다.

 

 

JAR file을 선택한 후 Next할 수 없을 때까지 Next를 누릅니다.

 

 

 

Next를 누를 수 없을 때까지 가면 위와 같은 창이 뜨는데 여기서 Main class를 지정해주어야 프로그램이 돌아갑니다.

Finish를 누르면 Export가 끝납니다! 이제 우리가 만든 jar파일을 실행시킬 일만 남았습니다.

 

 

만든 jar파일을 파란줄 친 곳으로 옮긴 뒤

java -jar [파일명].jar Hello World를 입력하시면 String[]이 인식하여 Hello World를 출력합니다.

 

 

이렇게 String[]을 사용하여 Hello World를 출력하였습니다.

지금 만든 소스는 사실 단점이 하나 있습니다. 띄어쓰기를 두 번 이상 할 수 없다는 점이죠.

(즉 Hello World, Cat Dog, apointment Whatthe 처럼 간단하게 쓸 수 밖에 없죠)

예외처리와 반복문을 이용하면 위의 문제를 해결할 수 있습니다.

만약 계속 문자열을 받아서 출력할 수 있는 소스에 관심이 있다면 아래 링크에서 다운받으시면 됩니다.

(소스 안에 설명도 달아놓았습니다.)

 

(소스 다운로드)