[Java의 정석] 자바로 프로그램 작성하기 - 클래스(class)

말하는 감자·2022년 5월 22일
0

Java의 정석

목록 보기
5/32
post-thumbnail

Chapter 01 자바를 시작하기 전에

3. 자바로 프로그램작성하기

3.1 Hello.java

📌 클래스(class)

자바에서 모든 코드는 반드시 클래스 안에 존재해야 하며, 서로 관련된 코드들은 그룹으로 나누어 별도의 클래스를 구성하게 된다.
그리고 이 클래스들이 모여 하나의 Java 애플리케이션을 이룬다.

클래스를 작성하는 방법은 간단하다. 키워드 class 다음에 클래스의 이름을 적고, 클래스의 시작과 끝을 의미하는 괄호{} 안에 원하는 코드를 넣으면 된다.

class 클래스이름 {
	/*
    	클래스에서 실행될 코드를 작성해준다.
        모든 코드는 클래스의 블럭{} 내에 작성해야한다.
    */
}

주석은 클래스 밖에서도 가능하며, package문과 import문은 예외적으로 클래스 밖에 작성한다.

📌 메인 메소드(main method)

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 메소드를 포함한 클래스의 이름을 적어줘야 한다.

ex) Hello.java

class Hello {
	public static void main(String[] arg) {
    	System.out.println("Hello, world."); // 화면에 글자를 출력
    }
}

위의 코드를 Hello.java에 저장했다면 main 메소드는 Hello 클래스 안에 선언되어있으므로
java Hello로 실행시킬 수 있다.
아래 클래스 생성에서 실제로 실행시키겠다.

📌 public class

하나의 소스파일에 하나의 클래스만을 정의하는 것이 보통이지만, 하나의 소스파일에 둘 이상의 클래스를 정의하는 것도 가능하다.
이 때 주의해야할 점은 [소스파일의 이름은 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.classHello3.class 모두 두개의 클래스 파일이 생성된다.


📑 원본 자료

  • Java의 정석(3판) [남궁 성/도우출판/2016]
profile
나는 말하는 감자다

0개의 댓글