OOP(Object Oriented Programing)
객체지향프로그래밍
- type 만들기 = Class 만들기
OOP 특성
1. 캡슐화
내가만든 객체가 스스로 기능을 하는데 있어서
외부의 영향을 안받으면서 안정성확보해야
= 내꺼 뺏기거나 남이 정보 바꾸거나 하지않게
=> 캡슐화 필요
- 완성도가 있다 = 기능을 수행하는 단위로써 완전함을 가짐
- 정보 은닉 = 객체 정보 밖으로 전달 or 밖에서 접근 불가
=> 객체는 스스로 동작할 수 있는 환경을 가져야함!
(외부에 의존하거나, 외부의 침략은 제한해야)
캡슐화를 위해 접근지정자 필요
- private : 그 객체만 소유
- protected : 상속된 객체에서 접근가능
- (friendly) : 같은 패키지 내에서 접근가능
- public : 모두 다 접근 가능
- ex)
Class Human{
Heart heart;
Blood blood;
}
Human human = new Human();
h.heart.stop();
예를 들어주셨는데 확 와닿았던..!
남이 내 심장에 막 접근해서 멈추게하면 안되니까?
남이 내 피에 막 접근해서 내 피 다 가져가면 안되니까?
-> 접근지정자 private
헌혈의 경우는? -> 접근지정자와 메서드를 이용해서
Class Human{
private Heart heart;
private Blood blood;
Blood donation(){
return null;
}
}
Human human = new Human();
h.donation();
2. 상속
- 상위, 부모, super, 추상
- 하위, 자식, (this), 구체
- 많이 하는 오해 : 공통된 기능을 여러 객체에게 전달하고 싶을 때 하나를 만들어서 상속한다?! (X)
- 포유류 > 사람 > 남자 > 짱구 (O)
3. 추상화
- 위로 올라갈수록 추상화된 객체 : 추상체
- 아래로 내려갈수록 구체적인 객체 : 구상체
=> 이는 서로 상대적임 = 객체간의 관계에서 상위에 있는것이 항상 하위보다 추상적이어야함!
4. 다형성
형(type)을 여러가지로 표현할 수 있다
- ex) Interface Login
- Class KakaoLogin implements Login
- Class NaverLogin implements Login
Login login1 = new KakaoLogin();
Login login2 = new NaverLogin();
- 인터페이스 왜 필요? : 캡슐화가 되기 위해선 서로의 기능을 막쓰면, 접근하면 안되니까
객체지향 설계
어떻게 하면 객체지향을 잘 할 수 있나?
=> 객체를 잘 나누고 잘 연관관계를 구성해야
- 객체를 어떻게 구분했다
- 객체간 연관관계가 어떠하다
를 설명하기 위한 도구 =UML
UML
- UseCase Diagram
- Sequence Diagram
- Package Diagram
- Class Diagram
사이트 : draw.io
/ staruml.io
객체지향 설계를하는 5가지 원칙 : SOLID
- SRP(Single Responsibility Principle) : 단일 책임 원칙
- OCP(Open Closed Priciple) : 개방 폐쇄 원칙
- LSP(Listov Substitution Priciple) : 리스코프 치환 원칙
- ISP(Interface Segregation Principle) : 인터페이스 분리 원칙
- DIP(Dependency Inversion Principle) : 의존 역전 원칙
=> 원칙에 따라 설계를 해봄 => 공통점이 있네 => 디자인패턴
Design Pattern
사이트 추천 : refactoring.guru
23가지 공부하기
추가) Design Pattern 공부하고 정리해봄
일기
- 부트캠프용 인텔리제이를 지원받았다(사실 어제)
인텔리제이를 처음 써봐서 어렵지만 좋은 경험과 기회라구 생각한다
곧 맥북을 장만할거라 혼란스럽지만, 일단은 윈도우로 단축키 파악하기 스타뚜
- 흑9팀 첫 멘토미팅을 했다
- 오늘의 귀여움 게더타운! 처음 써보는데 넘 귀엽고 재밌움
- z를 누르면 춤춘다
- f 누르면 뭔가 뿌림
- 다 같이 하고 있는 우리가 넘 귀여움
- 오늘 내 아바타를 단디 꾸미고 들어갔다 낼은 팀원들도 꾸미고 온다해서 단체사진 다시 찍기루