ssung_항해일지/항해99_WIL

23.01.23 - 01.29 -WIL

ssungcohol 2023. 1. 30. 00:36

금주의 주제는!!

 

객체지향 프로그래밍이란?!  &  JVM


여기에 대한 나의 답은

 

어렵다! 하지만, 이 또한 이겨내리라!


객체지향 프로그래밍은! 복잡한 프로그램을 분해하여 효과적으로 구성해, 쉽게 이해하고 효율적으로 다룰 수 있게 해준다!

 

객체지향의 4대 특성

  • 캡슐화 : 정보의 은닉
    => 세부사항을 감추는 것, 변경하기 쉬운 객체를 만들기 위해 사용, 객체 내부 접근 제한(유연한 설계 가능)
  • 상속 : 재사용
    => 코드 중복제거로 재사용성 증가, 클래스 간의 체계화 된 구조파악, 상위 클래스만 수정하므로써 일관성 유지
  • 추상화 : 모델링
    => 공통 부분을 모아 상위 개념으로 새로 선언, 공통적이고 중요한 것만 모델링, 외부노출 된 인터페이스만 사용
  • 다형성 : 사용의 편의
    => 객체가 가지고 있는 고유의 특성에 따라 다른 여러가지 형태로 재구성 (오버로딩, 오버라이딩을 생각해라!)

객체지향의 설계 5원칙

  1. 단일 책임의 원칙 (SRP - Singe Responsibility Principle)
    => 단 하나의 책임을 갖는 객체 : 역할과 책임을 클래스로 분리하여 연관있는 클래스와 각각 따로 관계를 맺어 영향력↓
  2. 개방 폐쇄 원칙 (OCP - Open-Close Principle)
    => 자신의 확장에는 열려있고, 변화에는 닫혀 있어야한다.
  3. 리스코프 치환의 원칙 (LSP - Liskov Substitution Principle)
    => 하위 클래스 인스턴스는 상위형 객체 참조변수에 대입해 상위 클래스의 인스턴스 역할을 하는데 문제 없어야 한다.
  4. 인터페이스 분리의 원칙 (ISP - Interface Segregation Principle)
    => 특정 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스 하나보다 낫다.
    => 클라이언트가 필요하지 않는 기능을 가진 인터페이스에 의존해서는 안되고 최대한 인터페이스를 작게 유지해라
  5. 의존성 역전 원칙 (DIP - Dependency Inversion Principle)
    => 고차원 모듈은 저차원 모듈에 의존하면 안된다. 이 두 모듈 모두 다른 추상화 된 것에 의존해야 한다.
    => 추상화 된 것은 구체적인 것에 의존하면 안된다. 구체적인 것이 추상화 된 것에 의존해야 한다.
    => 자주 변경되는 구체 (concrete) 클래스에 의존하지 마라!

JVM은?!

아직 학습하지 못하였다.

추후에 반드시 학습하리라..


차주 01.30 - 02.05 나의 목표

  1. 프로그래머스 코테 진행
  2. Java 이론 공부
  3. 코테 시험 통과
  4. 이해가 안되더라도 읽고, 코트를 쳐보자!
  5. 운동은 갈 수 있다면 1시간이라도! 제발 갈 수 있게 해주세요! (잠을 줄이던지..)
728x90

'ssung_항해일지 > 항해99_WIL' 카테고리의 다른 글

23.02.13 - 02.19 -WIL  (0) 2023.02.19
23.02.06 - 02.12 -WIL  (0) 2023.02.13
23.01.30 - 02.05 -WIL  (0) 2023.02.06
23.01.16 - 01.22 -WIL  (0) 2023.01.24
23.01.09 - 01.15 -WIL  (0) 2023.01.15