Harry's Blog

[Chapter 2] 자바 기초 다지기 - HelloWorld 분석 본문

Java/Java SE

[Chapter 2] 자바 기초 다지기 - HelloWorld 분석

HarryJoo 2018. 8. 27. 22:55

안녕하세요. 지난번에 작성한 HelloWorld 클래스의 코드에 대한 자세한 설명입니다.

자바를 처음 공부하시는 분들은 그냥 가볍게 읽거나 다음 포스팅으로 넘어가셔도 됩니다.

public class HelloWorld{
    public static void main(String args[]){
        System.out.println("Hello World!");
    }
}

(1) 클래스(Class)
1번째 행은 공개적으로 접근가능한(public) 클래스(Class) HelloWorld를 선언한다는 의미입니다.
클래스(Class)는 객체(Object)를 생성하기 위한 설계도 입니다. 
(자바는 객체지향(Object-oriented)언어라고 이전 포스트에서 소개하였습니다.)
조금 더 쉽게 얘기하면... 클래스는 붕어빵틀이고 객체는 붕어빵입니다. 객체는 여러번 생성될 수 있습니다.
HelloWorld 클래스 코드 영역은 1번째 행의 중괄호부터 5번째행의 중괄호까지 해당됩니다.

(2) 메서드(Method)
2번째 행은 HelloWorld 클래스가 사용하는 함수인 main 메서드(Method)입니다.
프로그램의 동작을 담당한다고 생각하시면 됩니다. (eg. 은행의 입금, 출금...)
공개되어서 어디서나 접근 가능하고(public), 정적이면서(static), 반환(return)값이 없는 (voidmain 메서드라는 의미입니다.
(자세한 설명은 나중에...)
2행 오른쪽 소괄호에 있는 문자는 인자값(parameter) 이라고 하며, String 배열 타입의 args라는 변수로 선언되어 있습니다.


- 일반적인 메서드의 구성
접근범위 (정적인지?) 반환값의타입 메서드명(인자값){

}

예) 입금하는 메서드 deposit
public (static) int deposit(int money){

}

메서드의 영역은 2행의 중괄호부터 4행의 중괄호까지 해당됩니다.

(3) 접근제어자(Access Modifier)
1번째 행 맨 처음에 나온 예약어인 public은 접근제어자(Access Modifier) 라고 합니다.
접근제어자는 public외에 private, protected, default(접근제어자 자리가 공백이면 디폴트)가 있습니다.
자바 개발이 처음이신 분들은 예제에 나온 public만 이해하고 가셔도 됩니다. (추후에 다시 설명하도록 하겠습니다.)

① public : 어느 클래스 에서든 HelloWorld 클래스의 멤버(변수, 메서드)에 접근 가능

② protected : HelloWorld 클래스를 상속받은 클래스만 멤버에 접근 가능

③ default(접근제어자를 표기하지 않으면 접근제어자는 디폴트)
eg) class HelloWorld
: 같은 패키지(package) 내에서 HelloWorld 클래스에 접근 할 수 있음

※ 패키지(package)는 다음 포스팅때 설명드리겠습니다. 상단의 소스코드에는 패키지 선언을 하지 않았으므로 default package에 속해있음.

④ private : 다른 클래스에서 HelloWorld 클래스 접근 불가