클래스 (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 |