본문 바로가기
국비학원 전 강의 필사/점프 투 자바

#02-01 자바 소스코드의 구조 - <점프 투 자바>

by kkooHan 2022. 8. 19.

 

출처 : https://wikidocs.net/book/31

 

 

점프 투 자바

**초보 프로그래머를 위한 자바 입문서** 이 책은 문법위주의 지식보다는 이해중심의 지식을 전달하는 것을 주 목적으로 한다. 예를 들어 자바에서 잘 파악하기 힘든 개념 ...

wikidocs.net

 

 

 

 

 

 

필사 :

 

2장 : 반드시 알아두어야 할 가장 기본적인 것들 학습하기

 

 

자바 소스코드의 구조

보통 일반적인 자바 소스코드는 다음과 같은 형태로 만들어진다.

 

클래스명.java

 

/* 클래스 블록 */
public class 클래스명 {

	/* 메소드 블록 */
    [public|private|protected] [static] (리턴자료형|void) 메소드명1(입력자료형 매개변수, ...){
    	명령문(statement);
        ···
    }
    
    /* 메소드 블록 */
    [public|private|protected] [static] (리턴자료형|void) 메소드명2(입력자료형 매개변수, ...){
    	명령문(statement);
        ···
    }
    
    ···
}

소스코드의 가장 바깥쪽 영역은 class 블록이다.

클래스명은 원하는 이름으로 지을 수 있다.

단, 클래스명은 소스파일의 이름(클래스명.java)과 동일하게 사용해야 한다.

> 참고 : public class -> 코드의 가독성 증가, 자바 파일명과 클래스명의 일치 확인 용도로

 

그리고 class 블록은 메소드 블록들을 포함한다.

 

 

메소드 블록 부분에서 [public|private|protected]라고 되어있는 부분의 의미는

public, private, protected 또는 아무것도 오지 않을 수 있다는 의미이다.

public, private, protected라는 것은 메소드의 접근제어자를 뜻하는데

이것에 대해서는 뒤에서 자세히 다루고 있다.

> 참고 : 접근제어자

 -> 변수,메소드를

    [해당 클래스/동일 패키지/해당 클래스를 상속받은 다른 패키지의 클래스] 에서만

    /어떤 클래스에서든 접근 가능하도록 설정.

 

[static]

 -> static 변수 => 메모리 할당을 딱 한 번만. 메모리 사용 이점.

     static 메소드 => 객체 생성없이 클래스를 통해 메소드 직접 호출 가능.

     singleton pattern => 단 하나만의 객체를 생성하게 강제하는 패턴.

    (이해가 안간다.. 이렇게만 정리하고 넘어가자)

 

(리턴자료형|void)

 -> 메소드가 실행된 후 리턴되는 값의 자료형을 의미.

     리턴값이 있을 경우 반드시 리턴 자료형을 표기해야 한다.

     리턴값이 없으면 void로 표기.

     둘 다 생략할 수 없고 void 또는 리턴자료형이 반드시 있어야 한다.

     (그래서 [ ] 대신 ( )로 표시)

 

메소드명 뒤 입력 인자 ( )

 -> 입력 인자의 갯수는 제한이 없다.

      입력 인자는 "입력자료형"+"매개변수명" 형태로 이루어진다.

 

 

클래스 내에는 이러한 메소드들이 여러개 올 수 있다.

 

 

 

 

소스코드의 예

sample.java

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

 

클래스 블록

public class Sample {
	(... 생략 ...)
}

이 클래스의 클래스명은 Sample이다.

 

소스코드의 가장 바깥쪽은 클래스(class) 블록이다.

클래스 블록은 중괄호({})로 둘러싸야 한다.

 

{ - 블록의 시작

} - 블록의 끝

 

public은 자바의 접근제어자로

어디서든 이 클래스에 접근할 수 있음을 의미한다.

class는 클래스 블록을 만드는 키워드이다.

 

 

 

 

메소드 블록

클래스 블록 안에는 다음과 같은 메소드 블록이 있다.

public class Sample {
	public static void main(String[] args) {
    	(... 생략 ...)
    }
}

이 메소드의 메소드명은 main이다.

 

메소드 블록 역시 중괄호로 영역을 구분한다.

클래스 블록 안에는 여러개의 메소드 블록이 있을 수 있다.

public, static, void 등에 대해서 일단 간단히 알아보고 넘어가자.

 

static - 이 메소드는 클래스 메소드가 되어 객체를 만들지 않아도 "클래스명.메소드명" 형태로 호출 가능하다.

void - 메소드의 리턴타입 중 하나. 리턴값이 없음을 의미.

String[] args - 메소드의 매개 변수. args 변수는 String[] 배열 자료형임을 의미. arguments : 관례적인 이름. 이름 변경 가능.

 

 

 

 

명령문 (Statement)

마지막으로 메소드 블록 안에는 명령문(Statement)이 있다.

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

위와 같이 컴퓨터에게 무언가 일을 시키는 문장을 명령문이라고 한다.

명령문은 반드시 세미콜론(;)을 붙여 문장의 끝을 표시해야 한다.

메소드 블록 아에는 여러 개의 명령문이 있을 수 있다.

 

 

 

 

 

느낀점 : 

 

자바 소스코드 구조에 대해서 조금 깊게 알게 되었다.

 

static 부분이 정확히 이해가 가지 않지만, 일단은 넘어가겠다.

 

 

 

인텔리제이 한줄 복사 방법

댓글