객체지향언어의 특징
▶ 캡슐화
- 필요한 데이터와 기능을 하나로 묶거나, 묶은 기능을 외부로 노출하지 않는 것을 의미
▶ 추상화
- 공통적인 특징을 추상적인 개념으로 뽑아내는 것을 의미
▶ 상속
- 상위개념의 특징을 하위 개념이 물려받는 것을 의미
▶ 다형성
객체지향언어 개발 방법
▶ 클래스의 부품화
예) 자동차를 구성할 때
- 자동차 클래스
속성 : brand, model, productionYear 등
기능 : 자동차 시동을 건다, 엑셀을 밟는다, 브레이크를 밟는다 등
- 타이어 클래스
…
- 핸들 클래스
...
클래스의 구성요소 – 변수, 생성자, 메소드
변수
생성자
메소드
메소드 (기능) - return문
- 리턴 타입은 기본형, 참조형이 올 수 있다.
- 현재 실행 중인 메소드를 종료하고 반환값을 가지고 호출한 메소드로
되돌아간다.
메소드(기능) – 사용(호출)
▶ 메소드의 호출방법
참조변수.메소드 이름(); // 메소드에 선언된 매개변수가 없는 경우
참조변수.메소드 이름(값1, 값2, … ); // 메소드에 선언된 매개변수가 있는 경우
생성자
- 리턴 값이 없다.
- 한번만 실행할 수 있다. 두가지를 제외하고 메소드와 동일하다.
생성자 - 구조
▶ 생성자 조건
- 생성자의 이름은 클래스의 이름과 같아야 한다.
- 생성자는 리턴값이 없다. (하지만 void를 쓰지 않는다.)
생성자 – 기본생성자 사용
※ 모든 클래스에는 반드시 하나이상의 생성자가 있어야 한다.
생성자에서 다른 생성자 호출하기 – this()
- 다른 생성자 호출은 생성자의 첫 문장에서만 가능
- 같은 클래스의 다른생성자를 호출할 때 사용
메소드 오버로딩(method overloading)이란?
“하나의 클래스에 같은 이름의 메소드를 여러 개 정의하는 것을 메소
드 오버로딩, 간단히 오버로딩이라고 한다.”
오버로딩의 조건
- 메소드의 이름이 같아야 한다.
- 매개변수의 개수 또는 타입이 달라야 한다.
- 매개변수는 같고 리턴타입이 다른 경우는 오버로딩이 성립되지 않는다.
(리턴타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다.)