Java

[인프런] 객체 지향

sejin2 2024. 5. 28. 15:09

객체 지향 특징

객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 이용된다.
역할과 구현을 분리하면,
클라이언트는 대상의 역할(인터페이스)만 알면 된다.
클라이언트는 구현 대상의 내부 구조를 몰라도 된다.
클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다.
클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않는다. 

  • 자바 언어의 다형성을 활용
    • 역할 = 인터페이스
    • 구현 = 인터페이스를 구현한 클래스, 구현 객체
  • 객체를 설계할 때 역할과 구현을 명확히 분리
  • 객체 설계시 역할을 먼저 부여하고, 그 역할을 수행하는 구현 객체 만들기

수 많은 객체 클라이언트와 객체 서버는 서로 협력 관계를 가진다.
( 클라이언트 : 요청, 서버 : 응답 )

자바 언어의 다형성

오버라이딩은 자바 기본 문법으로 오버라이딩 된 메서드가 실행된다.
다형성으로인터페이스를 구현한 객체를 실행 시점에 유연하게 변경이 가능하다. 
상속 관계도 다형성, 오버라이딩 적용이 가능하다. 

다형성의 본질

인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경할 수 있다.
클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변결할 수 있다. 

OCP ( Open-Closed Principle ) 원칙

  • Open for extension : 새로운 기능의 추가나 변경 사항이 있을 때, 기존 코드는 확장할 수 있어야 한다.
  • closed for modification : 기존의 코드는 수정되지 않아야 한다. 

=> 기존의 코드 수정 없이 새로운 기능을 추가할 수 있어야 한다.

 

 

 

공부 내용: [인프런] 김영한의 실전 자바 - 기본편

'Java' 카테고리의 다른 글

[인프런] Object 클래스  (0) 2024.06.02
[인프런] java.lang 패키지  (0) 2024.06.02
[인프런] 인터페이스  (0) 2024.05.28
[인프런] 추상 클래스  (0) 2024.05.28
[인프런] 다형성과 메서드 오버라이딩  (0) 2024.05.28