객체지향프로그래밍

마동찬·2023년 4월 9일
0

JVM( Java Virtual Machine ) : 자바 바이트코드를 실행할 수 있는 주체.

  • 자바 바이트코드는 플랫폼에 독립적이며 모든 자바 가상 머신은 자바 가상 머신 규격에 정의된 대로 자바 바이트코드를 실행한다.
  • 따라서 표준 자바 API까지 동일한 동작을 하도록 구현한 상태에서는 이론적으로 모든 자바 프로그램은 CPU나 운영 체제의 종류와 무관하게 동일하게 동작할 것을 보장한다.
  • Java는 "Write Once, Run Anywhere"

객체지향 프로그래밍

객체지향프로그래밍( Object Oriented Programming, OOP ) : 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법

OOP 원칙

  • 단일 책임 원칙(Single Responsibility Principle, SRP)
    객체는 오직 하나의 책임을 가져야 한다.(객체는 오직 하나의 변경의 이유만을 가져야 한다.)
  • 개방-폐쇄 원칙(Open-Closed Principle, OPC)
    객체는 확장에 대해서는 개방적이고 수정에 대해서는 폐쇄적이어야 한다.
    리스코프 치환 원칙(Liskov Substitution Principle, LSP)
    자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있다는 원칙.
  • 인터페이스 분리 원칙(Interface Segregation Principle, ISP)
    클라이언트에서 사용하지 않는 메서드는 사용해선 안 된다. 그러므로 인터페이스를 다시 작게 나누어 만든다. OCP와 비슷한 느낌도 들지만 엄연히 다른 원칙이다. 하지만 ISP를 잘 지키면 OCP도 잘 지키게 될 확률이 비약적으로 증가한다. 정확히 말하자면 인터페이스의 SRP라고 할 수 있다.
  • 의존성 역전 원칙(Dependency Inversion Principle, DIP)
    추상성이 높고 안정적인 고수준의 클래스는 구체적이고 불안정한 저수준의 클래스에 의존해서는 안 된다는 원칙으로서, 일반적으로 객체지향의 인터페이스를 통해서 이 원칙을 준수할 수 있게 된다. (상대적으로 고수준인) 클라이언트는 저수준의 클래스에서 추상화한 인터페이스만을 바라보기 때문에, 이 인터페이스를 구현한 클래스는 클라이언트에 어떤 변경도 없이 얼마든지 나중에 교체될 수 있다. (디자인 패턴 중 전략 패턴을 떠올리면 된다)
profile
새내기개발자 성장기록

0개의 댓글