2022.11.18 TIL

mil nil·2022년 11월 18일
0

TIL (Today I Learned)

목록 보기
15/74

객체지향 프로그래밍 1일차(복습)


  • 소프트웨어의 가치 = 변화
    - 분석, 수정, 테스트, 기능 추가 → 곧 비용
    - 적은 비용으로 변화할 수 있어야만 함
  • 생성자
    - 협업을 하는 사람들에게 이 코드의 의도를 전달할 수 있어야 함

항상 왜?를 생각하기

  • 접근자
    - 접근 제어자는 캡슐화가 가능할 수 있도록 돕는 도구

  • 캡슐화
    - 데이터에 해당되는 기능들을 묶는다.
    - 외부에 노출하지 않고 작동 및 변경이 가능하다.


Parameter - 매개변수(변수) - array_A
Argument - 인자(값) - ("a", "b", "c")

인터페이스 - implements로 동작을 명세, 다중상속 가능, 주로 사용 됨
추상클래스 - extends로 부모를 확장하는 것, 주로 관계가 매우 명확할 때만 사용

추상화

  • 의미가 비슷한 개념이나 의미 있는 표현으로 정의하는 과정
  • 특정한 성질, 공통 성질을 뽑아내는 과정

다형성(Polymorphism)

  • 한 객체가 다양한 타입을 갖는 것
    • 한 객체가 여러 타입의 기능을 제공
    • 타입 상속으로 다형성 구현

변수

  • 클래스 변수
    • 클래스 영역
    • 클래스 내에 static 키워드로 선언 된 변수
    • 클래스가 메모리에 올라 갈때
    • 딱 한번만 생성 됨
    • 주로 설정 관련 기능
  • 인스턴스 변수
    • 클래스 영역
    • 인스턴스가 생성 될 때, new
    • 매번 새롭게 생성 됨
  • 지역 변수
    • 메서드, 생성자, 초기화 블럭
    • 변수 선언 되었을 때

객체지향 프로그래밍 2일차


객체 Object
속성 Property

객체지향의 목표는 모방이 아니라 창조하는 것

  • 소프트웨어 내부에서 커피에게 날개를 달 수 있는 것

각 객체들은 역할책임이 주어지고 협력이 필요하다 (+메시지)

  • 붕어빵 틀은 붕어빵 모양이 나오게 하는 책임이 있음
    역할: 고객 → 책임: 주문하기
    역할: 캐셔 → 책임: 주문 받은 물건 전달하기
  • 스스로 해결할 수 없을 경우 위임을 통해 협력하여 진행
    붕어빵 틀 모양 변경이 어려운 경우 다른 클래스에 위임하여 도움을 요청
  • 변경할 수 있는 스코프를 최대한 줄여놓는 것이 좋다.
  • private final int ~ () {} 일 때 final로 묶어둔 것은 변경할 수 없다.
    - 변경이 필요할 경우 final을 제거하여 다른 곳에서 ~를 변경한다.
    - 묶어둔 것을 풀어서 수정하는 것은 쉬우나 흩어져 있는 것을 한 곳에 다시 묶는 것은 어렵다.
    - 따라서 변경할 수 있는 스코프를 최대한 줄이는 것이 좋다.

Java in Window: Ctrl + p: 필요한 parameter 보여줌


zip() 함수 - tuple 관련 내용

조별로 알고리즘 공부 중 zip() 함수에 대해 짧은 토론이 있었다.

출처: [Python] zip() 함수, 사용 예제

last_names = ["Jack","Matt","Obama"]
middle_names = ["D","S","O"]
first_names = ["Cock", "Bal", "Care"]

result_list = list(zip(last_names,middle_names,first_names))
result_dict = dict(zip(last_names,first_names))

print (result_list)
print (result_dict)

결과

[('Jack', 'D', 'Cock'), ('Matt', 'S', 'Bal'), ('Obama', 'O', 'Care')]
{'Jack': 'Cock', 'Matt': 'Bal', 'Obama': 'Care'}

zip은 list에 적용할 때는 tuple로 나오게 되고, dict에 적용할 때는 2개를 합친 zip으로만 가능하다.

profile
자바 배우는 사람

0개의 댓글