객체지향 프로그래밍의 특징
- 캡슐화(Encapsulation):
- 객체의 데이터(필드), 동작(메서드)을 하나로 묶고 실제 구현 내용을 외부에 감추는 것
- 외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메서드만 이용할 수 있다.
- 필드와 메서드를 캡슐화하는 이유:
- 캡슐화하여 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 보호하기 위함이다.
- 접근 제한자를 통해 캡슐화된 멤버를 노출시킬 건지, 숨길 건지 결정한다.
2. 상속(Inheritance):
- 부모객체가 자기가 가지고 있는 필드와 메소드를 자식 객체에 물려주어 자식 객체가 사용할 수 있도록 하는 것이다.
- 상속의 장점:
- 코드의 재사용성을 높여준다
- 잘 개발된 부모 객체의 필드와 메소드를 자식이 그대로 사용할 수 있어서 자식 객체에서 중복 코딩을 하지 않아도 된다.
- 유지 보수 시간을 최소화시켜 준다.
- 부모 객체의 필드와 메서드를 수정하면 모든 자식 객체들은 수정된 필드와 메서드를 사용할 수 있다.
3. 다형성(Polymorphism):
- 사용 방법은 동일하지만 실행 결과가 다양하게 나오는 성질을 말한다.
- 다형성을 구현하기 위해서는:
- 자동 타입 변환과 재정의 기술이 필요
- 여기서 기술이란, 상속과 인터페이스 구현을 통해 얻어진다.
클래스
- 클래스의 두가지 용도:
- 라이브러리 클래스: 실행할 수 없으며 다른 클래스에서 이용하는 클래스
- 실행 클래스: main()메서드를 가지고 있는 실행 가능한 클래스
- 클래스 선언
- 객체 초기화 역할을 담당하는 생성자
- 객체에 포함딜 필드와 메서드를 선언하는 코드
- 클래스의 구성멤버
생성자
: new 연산자로 객체를 생성할 때 객체의 초기화 역할
필드
: 필드는 객체의 데이터를 저장하는 역할
메서드
: 객체가 수행할 동작. (함수)
- 메서드는 객체와 객체간의 상호 작용을 위해 호출됨
오늘도 잘 읽고 갑니다!
정리내용에 대한 간단한 예제도 써보면 좋을 것 같아요!
화이팅!!