Chapter 01 자바를 시작하기 전에
3. 자바로 프로그램작성하기
3.1 Hello.java
자바에서 모든 코드는 반드시 클래스 안에 존재해야 하며, 서로 관련된 코드들은 그룹으로 나누어 별도의 클래스를 구성하게 된다.
그리고 이 클래스들이 모여 하나의 Java 애플리케이션을 이룬다.
클래스를 작성하는 방법은 간단하다. 키워드 class
다음에 클래스의 이름을 적고, 클래스의 시작과 끝을 의미하는 괄호{} 안에 원하는 코드를 넣으면 된다.
class 클래스이름 {
/*
클래스에서 실행될 코드를 작성해준다.
모든 코드는 클래스의 블럭{} 내에 작성해야한다.
*/
}
주석은 클래스 밖에서도 가능하며, package문과 import문은 예외적으로 클래스 밖에 작성한다.
public static void main(String[] arg)
는 main 메소드의 선언부인데, 프로그램을 실행할 때 'java.exe'에 의해 호출될 수 있도록 미리 약속된 부분이므로 항상 똑같이 적어주어야 한다.
class 클래스이름 {
public static void main(String[] arg) { // main 메소드의 선언부
// 실행될 문장들을 적는다.
}
}
main 메소드의 선언부 다음에 나오는 괄호{}는 메소드의 시작과 끝을 의미하며, 이 괄호 사이에 작업할 내용을 작성해 넣으면 된다.
Java 애플리케이션은 main 메소드의 호출로 시작해서 main 메소드의 첫 문장부터 마지막 문장까지 수행을 마치면 종료된다.
모든 클래스가 main 메소드를 가지고 있어야하는 것은 아니지만, 하나의 Java 애플리케이션에는 main 메소드를 포함한 클래스가 반드시 하나는 있어야 한다.
main 메소드는 Java 애플리케이션의 시작점이므로 main 메소드 없이는 Java 애플리케이션은 실행될 수 없기 때문이다. 작성된 Java 애플리케이션을 실행할 때는 'java.exe' 다음에 main 메소드를 포함한 클래스의 이름을 적어줘야 한다.
class Hello {
public static void main(String[] arg) {
System.out.println("Hello, world."); // 화면에 글자를 출력
}
}
위의 코드를 Hello.java에 저장했다면 main 메소드는 Hello 클래스 안에 선언되어있으므로
java Hello
로 실행시킬 수 있다.
아래 클래스 생성에서 실제로 실행시키겠다.
하나의 소스파일에 하나의 클래스만을 정의하는 것이 보통이지만, 하나의 소스파일에 둘 이상의 클래스를 정의하는 것도 가능하다.
이 때 주의해야할 점은 [소스파일의 이름은 public class의 이름과 일치해야 한다.]는 것이다.
만일 소스파일 내에 public class가 없다면, 소스파일의 이름은 소스파일 내의 어떤 클래스의 이름으로 해도 상관없다.
>> Hello2.java
public class Hello2 {}
class Hello3 {}
public class가 있는 경우, 소스파일의 이름은 반드시 public class의 이름과 일치해야 한다.
>> Hello3.java
class Hello2 {}
class Hello3 {}
public class가 하나도 없는 경우, 소스파일의 이름은 Hello2.java
, Hello3.java
둘 다 가능하다.
>> Hello2.java
public class Hello2 {}
public class Hello3 {}
하나의 소스파일에 둘 이상의 public class가 존재하면 안된다.
각 클래스를 별도의 소스파일에 나눠서 저장하든가 둘 중의 한 클래스에 public을 붙이지 않아야 한다.
>> Hello2.java
class Hello2 {}
public class Hello3 {}
소스파일의 이름이 public class의 이름과 일치하지 않는다.
소스파일의 이름을 Hello2.java
로 변경해야 한다.
>> hello2.java
class Hello2 {}
public class Hello3 {}
소스파일의 이름과 public class의 이름이 일치하지 않는다.
대소문자를 구분하므로 대소문자까지 일치해야 한다.
소스파일의 이름을 'h'에서 'H'로 변경해야 한다.
메인 메소드 설명시 예시로 들었던 프로그램을 실행하기 위해 먼저 자바컴파일러(javac.exe)를 사용해서 소스파일(Hello.java)로부터 클래스 파일(Hello.class)을 생성해야 한다. 그 다음에 자바 인터프리터(java.exe)로 실행한다.
>> Hello2.java
public class Hello2 {}
class Hello3 {}
소스파일(.java)과 달리 클래스파일(.class)은 클래스마다 하나씩 만들어지므로 위의 Hello2.java
를 컴파일하면 Hello2.class
와 Hello3.class
모두 두개의 클래스 파일이 생성된다.
📑 원본 자료
- Java의 정석(3판) [남궁 성/도우출판/2016]