본문 바로가기
BackEnd/Java

클래스 구성요소

by roh.mantique 2021. 9. 22.

클래스 (Class)

일종의 설계도 역할을 한다. 객체를 만들기 전, 현실 세계의 물체들을 객체화하여 코딩할 수 있도록 돕는 도구다. 

 

클래스는 필드, 생성자, 메소드로 이루어져 있다. 

 

1. 필드 (Field, 변수)

필드는 객체 고유의 데이터, 부품 객체, 상태 정보 등을 저장하는 공간이다.

- 통상 필드는 클래스에 포함된 변수(variable)를 의미한다.

- 변수는 클래스 변수, 인스턴스 변수, 지역 변수가 있다. 

   1) 클래스 변수 (class variable): 클래스 영역 내 변수 중 static 키워드를 갖는 변수

   2) 인스턴스 변수 (instance variable): 클래스 영역 내 변수 중 static 키워드 갖지 않는 변수

   3) 지역 변수 (local variable): 메소드나 생성자, 초기화 블럭 내 위치한 변수

- 클래스 내부의 생성자와 메소드에서 필드 사용 가능, 클래스 외부에서 사용할 경우 반드시 객체 생성하고 참조 변수 통해 사용해야 함.

 

2. 메소드 (Method) 

클래스 외부에서 내부 필드를 사용할 수 있게 해주는 기능을 한다. 일종의 함수.

- 반환값이 있는 메소드(return 타입 메소드), 없는 메소드로(void 타입 메소드) 구분된다. 

- return 타입 메소드의 경우 반드시 return문을 활용해 결과값을 반환받아야 한다.

- void 메소드의 경우에도 return문을 활용해 메소드를 즉시 종료할 수 있다. 

 

ex)

접근제어자 반환타입 메소드 이름 (매개변수 목록) {

//구현부

}

- 접근제어자: 해당 메소드에 접근할 수 있는 범위를 나타냄

- 반환 타입: 메소드가 작업을 마치고 반환하는 데이터의 타입을 표현

- 메소드 이름: 해당 메소드의 이름/ 호출하기 위한 이름

- 매개변수 목록 (parameters): 메소드 호출시 전달되는 인수값을 저장할 변수들

- 구현부: 메소드의 고유 기능을 수행하는 명령문의 집합

 

2-1. 메소드 오버로딩 Overloading 

같은 이름의 메소드를 중복하여 활용하는 것을 의미한다.

- 오버로딩된 메소드를 호출하면 매개변수의 개수, 데이터 타입이 같은 메소드를 찾아서 호출한다. 

- 단, 메소드가 오버로딩되기 위해선 몇 가지 조건이 필요하다. 

  1) 메소드의 이름이 같아야 한다.

  2) 매개변수의 개수나 타입은 달라야 한다. 

 

3. 생성자 (Constructor)

인스턴스에 필요한 공간을 만들고 초기화하는 역할을 한다. 

- 생성자는 인스턴스가 생성되는 순간 자동으로 호출된다. (-> 생성자의 이름은 해당 클래스 이름과 같다.) 

- 클래스 내부에 생성자를 따로 선언하지 않으면 컴파일러는 기본 생성자를 추가한다.

- 생성자는 오버로딩을 통해 다양하게 활용할 수 있다. 

 

3-1. 생성자 오버로딩 Overloading

매개변수가 다른 생성자를 두 개 이상 선언하는 것을 말한다. 

 

'BackEnd > Java' 카테고리의 다른 글

컬렉션 Collection  (0) 2021.09.24
인터페이스 Interface  (0) 2021.09.22
OOP의 4대 요소  (0) 2021.09.22
상속 Inheritance  (0) 2021.09.22