6.1.3 클래스 구조 살펴보기

jh·2022년 1월 25일
0

Do it! 자바 완전 정복

목록 보기
51/70

클래스의 전체적인 구조를 살펴보기 전에 클래스를 정의하는 방법부터 알아보자. 클래스는 class 키워드와 함께 클래스명을 표기한다. 클래스명은 대문자로 시작하는 것이 관례다.

🐸클래스의 정의

class 클래스명 {
...
}

클래스의 정의를 알아보았으니 다음과 같이 A라는 이름의 클래스를 포함하는 자바 소스 파일 A.java의 구조를 알아보자.

package ...; // 1 패키지
import ...; // 2 임포트
class 클래스명 {...} // 3 외부 클래스 
클래스의 밖에 올 수 있는 3가지

public class A(파일명과 동일해야 함){
int a = 3; // 1 필드 
double abc() {...} // 2 메서드
A() {...} // 3 생성자
class 클래스명 {...} // 4 이너 클래스 
클래스의 안에 올 수 있는 4가지
}

자바 소스 파일은 클래스의 외부 구성 요소와 내부 구성 요소로 나눠 생각할 수 있다.

클래스 외부 구성 요소 살펴보기
클래스의 외부에는 다음 3가지 구성요소만 올 수 있다.

  1. 패키지 package
    : 프로젝트를 생성할 때 패키지를 지정했다면 이 구성 요소에 패키지명이 포함되며, 반드시 주석을 제외하고 첫 번째 줄에 위치해야 한다. 클래스의 생성 과정에서 패키지를 생성하지 않았다면, 즉 디폴트 패키지를 사용하면 생략된다.
  2. 임포트 import
    : 다른 패키지의 클래스를 사용하고자 할 때 포함된다. 인텔리제이의 임포트 단축키는 참고 . 패키지 다음에 위치한다.
  3. 외부 클래스 external class
    : 클래스의 외부에 또 다른 클래스가 포함될 수 있다. 즉 1개의 .java 파일에 여러개의 클래스가 포함될 수 있다는 것이다. 단, 외부 클래스에는 public 키워드를 붙일 수 없다.

클래스 내부 구성 요소 살펴보기
클래스 내부의 구성 요소를 살펴보자. 내부에는 4가지의 구성 요소가 포함될 수 있다.

  1. 필드 field
    : 클래스의 특징(속성)을 나타내는 변수다. 만일 이 클래스가 한 사람에 관련된 정보를 담고 있다면 필드값으로 나이(int age = 20) 등이 포함될 수 있을 것이다.
  2. 메서드 method
    : 클래스가 지니고 있는 기능(함수)을 나타낸다. 한 사람에 관련된 클래스라면 일하기(void working() {...})등이 포함될 수 있다.
  3. 생성자 constructor
    : 생성자(A() {...})는 클래스의 객체를 생성하는 역할을 담당한다. 아직 클래스나 객체에 관한 명확한 개념은 없더라도 생성자의 역할이 '객체를 생성한다'라는 점까지는 기억해 두자.
  4. 이너 클래스 class
    : 클래스의 내부에도 클래스가 포함될 수 있다. 이 클래스를 특별히 '이너 클래스'라고 한다.

내부에 올 수 있는 4가지 구성 요소들 중 생성자를 제외한 3가지 요소를 '클래스의 멤버 member'라고 한다. 정리하면 클래스의 외부에는 3가지 종류, 내부에는 4가지 종류만 올 수 있으며, 이들 모두 또는 일부만 있어도 되고, 심지어 하나도 포함되지 않아도 문법적으로는 문제가 없다. 그러나 이들 이외의 요소가 한 글자라도 들어 있다면 컴파일러는 뒤도 안 돌아보고 오류를 발생시킬 것이다.

+) 접근 지정자 public 이란?
class 키워드 앞에 있는 public을 접근 지정자 라고 한다. 이는 다음에 자세히 다룰 것이므로 여기서는 class를 꾸며 주는 말 정도로만 생각하면 된다. 즉, 빨간색 사과 라는 표현에서 사과가 클래스라면 public은 빨간 정도의 의미를 지니고 있는 것이다. 다만 .java 파일 내에서 pulic은 최대 1개의 클래스에만 붙을 수 있으며 public이 붙은 클래스명이 파일명과 동일해야 한다는 정도는 꼭 기억하자.

profile
코딩 공부 중...

0개의 댓글