[JAVA] 객체지향의 특징
2021. 1. 13. 21:49
728x90
캡슐화
변수와 클래스를 하나로 묶는 작업
중요한 데이터를 보존, 보호하기 위해 사용하는 것
클래스에 담는 내용 중 중요한 데이터나 기능을 외부에서 접근하지 못하도록 사용
- 멤버변수에 접근제어자 private 사용
- setter/getter 메소드를 통해 변수의 값들을 조회하거나 수정하게 함.
캡슐화된 클래스 내부의 메서드만을 통해 변수를 조작가능 => 정보 은닉
상속
- 기존 클래스를 재사용해서 새로운 클래스를 작성하는 것
- 두 클래스를 조상과 자손으로 관계를 맺어준다.
- 상속받는 클래스를 자식클래스, 하위클래스, 서브클래스
- 상속해주는 클래스를 부모클래스, 상위클래스, 슈퍼클래스
- 부모클래스의 필드와 메서드를 물려받는다.
- 단, 접근제어자 private을 갖는 필드나 메서드는 상속 불가
- 자손의 멤버 개수는 조상보다 같거나 많다.
- 단일 상속만 가능
- class 클래스이름 extends 부모클래스
=> 중복된 코드를 줄일 수 있고, 유지보수가 편리, 다형성을 구현할 수 있다.
다형성
- 같은 자료형에 여러가지 객체를 대입하여 다양한 결과를 얻어내는 성질
- 하나의 타입으로 다양한 실행결과를 얻을 수 있으며 객체를 부품화하여 유지보수를 용이하게 한다
- 클래스의 상속이나 인터페이스를 구현하는 자식클래스에서 메서드를 재정의(오버라이딩)하고 자식클래스를 부모타입으로 업캐스팅한다.부모타입의 객체에서 자식멤버를 창조하여 다형성을 구현하다.
추상화
- 객체에서 공통된 속성과 행위를 추출하는 것
추상 클래스
- abstract method를 포함하고 있는 클래스 => 선언부만 있고 구현부가 없는 메소드
- 인스턴스를 생성할 수 없다.
- 상속받는 자식클래스에서 추상메소드를 완성해야함.
- 코드의 공통적인 부분을 제시하고 표준화하기 위한 용도로 활용.
728x90
'Development > 자바' 카테고리의 다른 글
[JAVA] 객체지향 설계의 5가지 원칙 SOLID (0) | 2021.01.13 |
---|---|
[JAVA] 자바란? (0) | 2020.11.10 |
[JAVA] 스택과 큐 (0) | 2020.11.05 |
[JAVA] 배열 (0) | 2020.10.28 |
[JAVA] 람다식이란? (0) | 2020.10.22 |