2023. 3. 29. 00:00ㆍJAVA/Language
목차
- OOP 특징
- 캡슐화(Encapsulation)
- 상속(Inheritance)
- 추상화(Abstraction)
- 다형성(Polymorphism)
OOP(Object-Oriented-Programming) 특징
- 캡슐화(Encapsulation)
- 상속(Inheritance)
- 추상화(Abstraction)
- 다형성(Polymorphism)
캡슐화(Encapsulation)
캡슐화는 외부의 접근으로부터 클래스의 자세한 정보인 필드 멤버와 메소드를 숨기는 방법입니다. 그리고 캡슐화가 적용된 클래스는 오직 public 인터페이스를 통하여 인터페이스의 메소드(메시지)를 노출합니다.
상속(Inheritance)
상속은 한 클래스가 또 다른 클래스의 필드 멤버와 메소드 기능들을 사용할 수 있도록 하는 것입니다. 자바에서 상속은 이미 존재하는 클래스들을 기반으로 새로운 클래스를 생성하는 것을 의미합니다. 상속받은 클래스는 필드 멤버와 메소드를 재사용할 수 있거나 새로운 필드멤버와 메소드를 상속받은 클래스에서 정의하여 확장할 수 있습니다.
추상화(Abstraction)
객체간의 공통적인 속성이나 행동들을 묶어서 이름을 붙이는 것을 추상화라고 할 수 있습니다. 예를 들어 물고기, 사자, 토끼, 뱀이라는 객체가 존재할때 이 객체들을 하나로 묶을때 동물또는 생물이라는 추상적인 객체로 정의할 수 있습니다. 이때 동물 또는 생물이라고 정의하는 것을 추상화라고 할 수 있습니다.
다형성(Polymorphism)
다형성은 각각의 객체에게 동일한 요청을 할때 각각의 객체들이 자기만의 방법으로 같은 결과로 응답하는 것을 말합니다. 예를 들어서 바리스타라는 인터페이스가 존재할때 이 바리스타 인터페이스를 구현하는 두 객체가 존재한다고 가정합니다. 이때 외부에서 바리스타 인터페이스를 구현한 두 객체에게 커피를 만들어 달라고 요청할 수 있습니다. 이때 한 객체는 에스프레소 머신을 이용하여 커피를 만들어서 응답할 수 있습니다. 그리고 또 다른 한 객체는 커피포트를 이용하여 커피를 만들어서 응답할 수 있습니다. 즉, 다형성은 인터페이스 또는 클래스에서 정의된 메소드를 구현 클래스(또는 자식 클래스)에서 재정의(오버라이딩)되어 사용하는 것을 의미합니다.
References
https://www.geeksforgeeks.org/encapsulation-in-java/
https://www.geeksforgeeks.org/inheritance-in-java/
https://88240.tistory.com/228
https://www.nextree.co.kr/p6960/
'JAVA > Language' 카테고리의 다른 글
모던 자바 인 액션: 함수형 관점으로 생각하기 (0) | 2024.07.15 |
---|---|
다형성(Polymorphism) (0) | 2023.04.23 |
Mokito 모듈을 이용한 Random 객체 통제하기 (0) | 2023.03.10 |
[Java][Optional] Optional의 위험 및 사용 가이드 (0) | 2022.11.28 |
[Java][Optional] Optional 클래스를 통한 Null 처리 (0) | 2022.11.28 |