ssung_항해일지/항해99_WIL
23.01.23 - 01.29 -WIL
ssungcohol
2023. 1. 30. 00:36
금주의 주제는!!
객체지향 프로그래밍이란?! & JVM
여기에 대한 나의 답은
어렵다! 하지만, 이 또한 이겨내리라!
객체지향 프로그래밍은! 복잡한 프로그램을 분해하여 효과적으로 구성해, 쉽게 이해하고 효율적으로 다룰 수 있게 해준다!
객체지향의 4대 특성
- 캡슐화 : 정보의 은닉
=> 세부사항을 감추는 것, 변경하기 쉬운 객체를 만들기 위해 사용, 객체 내부 접근 제한(유연한 설계 가능) - 상속 : 재사용
=> 코드 중복제거로 재사용성 증가, 클래스 간의 체계화 된 구조파악, 상위 클래스만 수정하므로써 일관성 유지 - 추상화 : 모델링
=> 공통 부분을 모아 상위 개념으로 새로 선언, 공통적이고 중요한 것만 모델링, 외부노출 된 인터페이스만 사용 - 다형성 : 사용의 편의
=> 객체가 가지고 있는 고유의 특성에 따라 다른 여러가지 형태로 재구성 (오버로딩, 오버라이딩을 생각해라!)
객체지향의 설계 5원칙
- 단일 책임의 원칙 (SRP - Singe Responsibility Principle)
=> 단 하나의 책임을 갖는 객체 : 역할과 책임을 클래스로 분리하여 연관있는 클래스와 각각 따로 관계를 맺어 영향력↓ - 개방 폐쇄 원칙 (OCP - Open-Close Principle)
=> 자신의 확장에는 열려있고, 변화에는 닫혀 있어야한다. - 리스코프 치환의 원칙 (LSP - Liskov Substitution Principle)
=> 하위 클래스 인스턴스는 상위형 객체 참조변수에 대입해 상위 클래스의 인스턴스 역할을 하는데 문제 없어야 한다. - 인터페이스 분리의 원칙 (ISP - Interface Segregation Principle)
=> 특정 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스 하나보다 낫다.
=> 클라이언트가 필요하지 않는 기능을 가진 인터페이스에 의존해서는 안되고 최대한 인터페이스를 작게 유지해라 - 의존성 역전 원칙 (DIP - Dependency Inversion Principle)
=> 고차원 모듈은 저차원 모듈에 의존하면 안된다. 이 두 모듈 모두 다른 추상화 된 것에 의존해야 한다.
=> 추상화 된 것은 구체적인 것에 의존하면 안된다. 구체적인 것이 추상화 된 것에 의존해야 한다.
=> 자주 변경되는 구체 (concrete) 클래스에 의존하지 마라!
JVM은?!
아직 학습하지 못하였다.
추후에 반드시 학습하리라..
차주 01.30 - 02.05 나의 목표
- 프로그래머스 코테 진행
- Java 이론 공부
- 코테 시험 통과
- 이해가 안되더라도 읽고, 코트를 쳐보자!
- 운동은 갈 수 있다면 1시간이라도! 제발 갈 수 있게 해주세요! (잠을 줄이던지..)
728x90