[TIL] 2021.02.23

pbg0205·2021년 2월 23일
0

✖️[알고리즘]

1.[프로그래머스] 조이스틱
2.[프로그래머스]위장


📗 [미션4 피드백 + 미션5 진행방향]

  1. Board 내부 Wrapper class로 PieceGroup class로 만들어서 작업 진행했다. 주로 저장 및 추가하는 기능을 PieceGroup이 담당하고 있어서 현재 Board의 책임이 애매해졌다. 그래서 미션5를 진행하면서 Board의 책임에 대해서 초점을 두고 작업을 진행 해야겠다.
  1. 오후에 merge된 것을 확인하고 저녁부터 미션5를 진행했다. 앞에 위치한 요구사항의 경우 리팩토링에 초점을 맞춘 요구사항이라 금방 넘어갔지만 가장 중점적으로 생각해야 하는 부분이 Board 내부에서 관리하는 자료 구조에 대해서 초점을 두고 작업을 해야겠다. 이차원 배열을 최대한 사용하지 않는 방법으로 작업을 진행해야 겠다.

🐸 [개구리책 : 03. 자바와 객체 지향]

1. class, object,property, method

  • class : '사물을 분류한다' 이해하기
  • object : 분류 안의 객체
  • property : 객체의 속성들
  • method : 객체의 행위

예시) **김종민(object)**존재하는 사람이라는 **분류(class)**에 속한다. 사람이라는 객체(object)들은 **나이, 몸무게, 키 등의 속성(property)**와 **먹다, 자다, 울다 등의 행위(method)**가지고 있다.

2. 객체 지향의 4대 특성 - 캡! 상추다

  • 캡 : 캡슐화(Encapsulation): 정보은닉(information hiding)
  • 상 : 상속 : 재사용
  • 추 : 추상화(Abstaction) : 모델링
  • 다 : 다형성(morphism) : 사용 편의

3. 클래스 vs. 객체 = 붕어빵틀 vs. 붕어빵

  • 붕어빵틀은 붕어빵을 만드는 팩터리이다.
  • 클래스는 분류에 대한 개념이지 실체가 아니다.

4. 추상화는 모델링이다.

  • 추상화 : 구체적인 것을 분해해서 관심 영역에 대한 특성만을 가지고 재조합 = 모델링
  • 클래스 : 분류, 집합 같은 속성과 기능을 가진 객체를 총칭하는 개념
  • 개체 : 전체나 집단에 상대하여 하나하나의 낱개

5. 클래스 멤버 vs. 객체 멤버 = static 멤버 vs. 인스턴스 멤버

  • 클래스 멤버 = static 멤버 = 정적 멤버
    • 정적 멤버 속성 : 모든 객체들이 같은 값을 가질 때
    • 정적 멤버들은 클래스에 속해 있다.
  • 객체 멤버 = 인스턴스 멤버

6. 상속 : 재사용 + 확장

  • 상속의 의미 : 필요한 특성을 추가. 즉, 확장해서 사용할 수 있다는 의미.
  • 상속을 확장, 세분화, 슈퍼 클래스 - 서브 클래스 개념으로 받아들이자.
  • 상속에서 반드시 만족할 문장 : 하위 클래스는 상위 클래스다. (LSP:리스코프 치환 법칙)
  • 상속 관계에 알맞은 표현 : is kind of
    • ex) 펭귄 is a kind of 동물

7. 상속과 인터페이스

  • 상위 클래스는 물려줄 특성이 풍부할수록 좋다.
  • 인터페이스는 구현을 강제할 메서드의 개수가 적을수록 좋다.

8. 오버로딩? 오버라이딩

  • override(올라타다) : 같은 메서드 이름, 같은 인자 목록으로 상위 클래스의 메서드를 재정의
  • overload(적재하다) : 같은 메서드 이름, 다른 인자 목록으로 다수의 메서드를 중복 정의 (다형성을 지원하지 않은 자바의 장점?)

9. 캡슐화: 정보은닉

  • ㅡ : private
  • ~ : default
  • #: protected (+ 상속관계 있는 서브 클래스 + 같은 패키지)
  • +: public

10. 참조 변수의 복사

  • 기본 자료형(primitive type)은 값을 값 자체로 판단한다.
  • 참조 자료형 변수는 값을 주소, 즉 포인터로 판단한다.
  • 기본 자료형 변수를 복사할 때, 참조 자료형 변수를 복사할 때 일어나는 일은 같다.
    (즉, 가지고 있는 값을 그대로 복사해서 넘겨준다.(call by value))

💪To-Do-List

  • [ ] 미션5 구현하기

  • [ ] 스프링 입문을 위한 자바 객체 지향의 원리와 이해 4장

  • [ ] 자바의 정석 : 입출력 I/O 복습하기

  • [ ] 백기선님 스프링 입문 강의듣기 (너무 안들었다 그동안;;)

  • [ ] 프로그래머스 알고리즘 Level2 페이지1 풀이(거의 다 했다 좀만;)

profile
steady

0개의 댓글