TIL 23.07.31

ν™©μ€ν•˜Β·2023λ…„ 7μ›” 30일
0

TIL

λͺ©λ‘ 보기
51/146

πŸ“ŒToday I Learned

Git μ„€μ •

학원 컴퓨터에 user.nameκ³Ό user.email을 λ³€κ²½ν–ˆλ‹€.

$ git config --global user.name 'eeunha'
$ git config --global user.email 'wnth'

Java μˆ˜μ—…

β—ˆEx36~37 Class

μ–Έμ–΄μ˜ μ„±ν–₯

  1. 절차 지ν–₯ ν”„λ‘œκ·Έλž˜λ°
  2. ν•¨μˆ˜ 지ν–₯ ν”„λ‘œκ·Έλž˜λ°
  3. 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°

μžλ°”

  • 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄, Object Oriented Programming (OOP)
  • 객체λ₯Ό μ„ ν˜Έν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° λ°©μ‹μ˜ μ–Έμ–΄

클래슀, Class

  1. 객체, Object
    사전적인 μ •μ˜λ‘œ μ‹€μ œ μ‘΄μž¬ν•˜λŠ” 것을 λ§ν•œλ‹€.
    객체지ν–₯ μ΄λ‘ μ—μ„œλŠ” 사물과 같은 μœ ν˜•μ μΈ κ²ƒλΏλ§Œ μ•„λ‹ˆλΌ, κ°œλ…μ΄λ‚˜ 논리와 같은 λ¬΄ν˜•μ μΈ 것듀도 객체둜 κ°„μ£Όν•œλ‹€.

  2. 클래슀, Class
    객체λ₯Ό λΆ„λ₯˜ν•˜λŠ” λ‹¨μœ„μ΄λ©° 객체λ₯Ό μƒμ„±ν•˜λŠ” λ‹¨μœ„μ΄λ‹€.

  3. μΈμŠ€ν„΄μŠ€, Instance
    객체라고도 ν•˜λ©° μΈμŠ€ν„΄μŠ€λΌκ³ λ„ λ³΄λŠ” κ²½μš°κ°€ μžˆλ‹€. μžμ„ΈνžˆλŠ” λ‚˜μ€‘μ— λ°°μš°λ‹ˆ 일단은 λ‘κ°œκ°€ λΉ„μŠ·ν•˜λ‹€κ³  μƒκ°ν•˜μž.

  4. μΊ‘μŠν™”, 정보은닉
    객체의 λ‚΄λΆ€λ₯Ό μ™ΈλΆ€λ‘œλΆ€ν„° λ³΄ν˜Έν•˜κΈ° μœ„ν•œ μž₯치

  5. μΈν„°νŽ˜μ΄μŠ€, Interface
    μΊ‘μŠν™”λœ 내뢀와 μ™ΈλΆ€κ°„μ˜ μ΅œμ†Œν•œμ˜ 연결이 κ°€λŠ₯ν•œ ν†΅λ‘œ 역할을 ν•œλ‹€.
    ex) κ²Œμž„ μΈν„°νŽ˜μ΄μŠ€

객체 = 데이터 + 행동 의 집합

  1. ν”„λ‘œνΌν‹°
    객체가 κ°€μ§€λŠ” 정보(데이터)

  2. 행동
    객체가 κ°€μ§€λŠ” 행동

  3. 상속
    λΆ€λͺ¨κ°€ κ°€μ§€λŠ” μž¬μ‚°μ„ μžμ‹μ΄ λ¬Όλ €λ°›λŠ” 행동

λ³€μˆ˜λ₯Ό μ €μž₯ν•˜λŠ” 방법

Case 1. λ³€μˆ˜λ₯Ό 생성해 λ¦¬ν„°λŸ΄μ„ λ„£κΈ°.

  • κ°€μž₯ κ°„λ‹¨ν•œ 방법
  • μ‹λ³„μž λ¬Έμ œκ°€ λ°œμƒν•œλ‹€.
    a. 같은 μ„±μ§ˆμ˜ μ‹λ³„μžκ°€ μ„œλ‘œ λ‹€λ₯Έ 이름을 μ‚¬μš©
    b. ν•œ 쌍의 집합 > 물리적 관리 λΆˆκ°€λŠ₯ > 치λͺ…적
    -> ꡬ쑰(x), κ·œμΉ™(애맀) > μ‘°μž‘ 뢈편

Case 2. λ°°μ—΄ μ‚¬μš©ν•˜κΈ°

  • 데이터 μ €μž₯ ꡬ쑰 생성 > κ·Έλ£Ή > 관리 μˆ˜μ›”
  • λ°°μ—΄ 단점 > μš”μ†Œκ°„μ˜ μ„±μ§ˆμ„ κ΅¬λΆ„ν•˜κΈ° νž˜λ“€λ‹€. > 첨자 μ‚¬μš© > μ²¨μžλŠ” 의미λ₯Ό 가지지 λͺ»ν•œλ‹€. > λͺ‡ 번째 방에 μ–΄λ–€ 데이터λ₯Ό λ„£μ—ˆλŠ”μ§€ 관리가 νž˜λ“€λ‹€. > 배열은 같은 νƒ€μž…μ˜ 같은 μ„±μ§ˆμ˜ 데이터 집합 (-> λ°°μ—΄ 자체의 단점은 μ•„λ‹ˆκ³  이 μƒν™©μ—μ„œμ˜ 단점이닀.)

Case 3. 클래슀 μ‚¬μš©ν•˜κΈ°

  • 클래슀 μ‚¬μš© > 데이터 집합(***)
  • 데이터 μ €μž₯ ꡬ쑰 생성 > 관리 μˆ˜μ›”
  • 같은 클래슀의 객체 > 멀버 이름이 동일 > 데이터 의미 λͺ…ν™•
  • 멀버 λ³€μˆ˜μ˜ 이름이 쑴재 > x, y > λ°°μ—΄κ³Ό 달리 λ©€λ²„μ˜ 의미 λͺ…ν™•
  • 클래슀 μ„ μ–Έ λΉ„μš© λ°œμƒ(κ³ κ°€) > 개발자 ν•  일 증가

이클립슀 > ν™•μž₯ ν”„λ‘œκ·Έλž¨(Plugin-in)

  1. 직접 μ„€μΉ˜
  2. λ§ˆμΌ“ ν”Œλ ˆμ΄μŠ€

Objectaid > UML ν™•μž₯ ν”„λ‘œκ·Έλž¨

  • Class Diagram

UML, Unified Modeling Language

  • ν”„λ‘œκ·Έλž¨μ˜ 섀계도λ₯Ό λ§Œλ“œλŠ” μ–Έμ–΄
  • μˆ˜λ§Žμ€ μ’…λ₯˜μ˜ 섀계도
    a. Class Diagram
    b. Package Diagram
    c. Object Diagram
    d. Component Diagram
    e. Sequence Diagram
    f. UseCase Diagram
    g. Activity Diagram
    h. State Diagram ...

Drag & Drop 으둜 μƒμ„±ν•œλ‹€.

클래슀(객체) = 데이터(멀버 λ³€μˆ˜) + 행동(λ©”μ†Œλ“œ)

클래슀 μ„ μ–Έν•˜κΈ°

-> λΆ•μ–΄λΉ΅ ν‹€ λ§Œλ“€κΈ°

  • 클래슀λͺ… > 파슀칼 ν‘œκΈ°λ²•

클래슀 λ‚΄λΆ€

클래슀 멀버 μ„ μ–Έ > λ³€μˆ˜ or λ©”μ†Œλ“œ κ°€λŠ₯
ν΄λž˜μŠ€μ— μƒμ„±λœ λ³€μˆ˜λ₯Ό 클래슀 멀버 λ³€μˆ˜λΌκ³  ν•œλ‹€.

클래슀 멀버

  1. λ³€μˆ˜ -> 클래슀 멀버 λ³€μˆ˜ > ν”„λ‘œνΌν‹°, νŠΉμ„±
  2. λ©”μ†Œλ“œ -> 클래슀 멀버 λ©”μ†Œλ“œ > ν˜ΈμΆœλ˜λŠ” 객체에 따라 λ‹€λ₯Έ κ²°κ³Όκ°€ λ°œμƒν•œλ‹€. (μ€‘μš”! 클래슀 멀버 λ©”μ†Œλ“œλŠ” λ˜λ„λ‘(ν•„μˆ˜) 멀버 λ³€μˆ˜λ₯Ό ν™œμš©ν•΄μ„œ 행동을 ν•΄μ•Ό ν•œλ‹€.)

κ°œμ„±μ΄ μ—†λŠ” λ©”μ†Œλ“œ > κ°μ²΄κ°„μ˜ 행동 ꡬ뢄이 λΆˆκ°€λŠ₯ν•˜λ‹€.

ν΄λž˜μŠ€μ—μ„œ 멀버 λ³€μˆ˜ 없이 멀버 λ©”μ†Œλ“œλ§Œ μ‘΄μž¬ν•˜λŠ” 경우, 이λ₯Ό 행동 클래슀라고 ν•˜λ©° 객체λ₯Ό μ—¬λŸ¬ 개 μƒμ‚°ν•˜μ§€ μ•Šκ³  단 ν•˜λ‚˜λ§Œ μƒμ‚°ν•œλ‹€.

λ°˜λ“œμ‹œ 지킬 κ·œμΉ™

  • 파일의 이름과 클래슀의 이름이 λ°˜λ“œμ‹œ 동일해야 ν•œλ‹€. > 컴파일 μ—λŸ¬

ν•œ 파일 λ‚΄μ—μ„œ 2개 μ΄μƒμ˜ 클래슀λ₯Ό λ§Œλ“€ λ–„

  • 파일 λ‚΄μ˜ λͺ¨λ“  클래슀 쀑 public ν‚€μ›Œλ“œλ₯Ό κ°€μ§€λŠ” ν΄λž˜μŠ€λŠ” λ°˜λ“œμ‹œ λ”± 1개(유일)
  • public ν΄λž˜μŠ€κ°€ λŒ€ν‘œ 클래슀 μ—­ν•  > λŒ€ν‘œ 클래슀의 이름이 파일λͺ…이 λœλ‹€.

클래슀 μ„ μ–Έ > ꢌμž₯ 사항

  • 클래슀 1κ°œλ‹Ή 물리적인 파일 1개λ₯Ό λ§Œλ“ λ‹€.
  • ν•˜λ‚˜μ˜ *.java μ•ˆμ— μ—¬λŸ¬ 개의 클래슀λ₯Ό μ„ μ–Έν•˜μ§€ 말자.

ν΄λž˜μŠ€λŠ” 같은 νŒ¨ν‚€μ§€ 내에 λ™μΌν•œ 이름을 2개 이상 κ°€μ§ˆ 수 μ—†λ‹€.

  • 클래슀의 μ˜μ—­μ€ νŒ¨ν‚€μ§€μ΄λ‹€.
  • 클래슀의 μ˜μ—­μ€ 물리적인 파일이 μ•„λ‹ˆλ‹€.(μ€‘μš”!)

β—ˆEx39_Access

μ ‘κ·Ό μ§€μ •μž(μ œμ–΄μž), Access Modifier

  • 클래슀 멀버에 λΆ™μ—¬μ„œ μ‚¬μš©ν•œλ‹€. > 멀버 λ³€μˆ˜, 멀버 λ©”μ†Œλ“œ > 였늘
  • 클래슀 μžμ²΄μ— λΆ™μ—¬μ„œ μ‚¬μš©ν•œλ‹€.
  • μ§€μ—­λ³€μˆ˜μ—λŠ” μ‚¬μš©μ΄ λΆˆκ°€λŠ₯ν•˜λ‹€.
  • 클래슀(객체)의 μ˜μ—­μ„ κΈ°μ€€μœΌλ‘œ, 외뢀에 ν•΄λ‹Ή 멀버λ₯Ό μ–΄λ–»κ²Œ λ…ΈμΆœν• μ§€ ν†΅μ œν•˜λŠ” μ—­ν• . > λ³΄μ•ˆ μˆ˜μ€€ μ œμ–΄
  1. public - κ°€μž₯ 개방적. ν•΄λ‹Ή 클래슀 외뢀에 이 멀버λ₯Ό κ³΅κ°œν•˜κ² λ‹€.
  2. private - κ°€μž₯ 폐쇄적. ν•΄λ‹Ή 클래슀 외뢀에 이 멀버λ₯Ό λΉ„κ³΅κ°œν•˜κ² λ‹€. > μ™œ? > λ‚΄λΆ€ μ „μš© λ³€μˆ˜ (이유 1. μœ„ν—˜ν•΄μ„œ 2. κ³΅κ°œν•  ν•„μš”κ°€ μ—†μ–΄μ„œ)

  1. protected > 상속
  2. default > νŒ¨ν‚€μ§€
    (3, 4λŠ” μΆ”ν›„ 배울 것)

같은 클래슀 λ‚΄λΆ€μ—μ„œλŠ”... > 같은 λ©€λ²„λΌλ¦¬λŠ” > μ ‘κ·Ό μ§€μ •μžκ°€ λ™μž‘ν•˜μ§€ μ•ŠλŠ”λ‹€. > μ•„μ˜ˆ μ˜λ―Έκ°€ μ—†λ‹€.

μ ‘κ·Ό μ§€μ •μž > κ°€μ΄λ“œ 라인(μƒν™©λ΄μ„œ λ³€κ²½ κ°€λŠ₯ν•˜λ‹€.)

  1. 멀버 λ³€μˆ˜λŠ” 무쑰건 private을 μ‚¬μš©ν•œλ‹€.
  2. Getter/Setterλ₯Ό κ΅¬ν˜„ν•œλ‹€.

private으둜 된 λ³€μˆ˜μ— μ ‘κ·Όν•˜κ³  μ‹Άλ‹€λ©΄?
-> Getter/Setter λ©”μ†Œλ“œλ₯Ό λ§Œλ“€μ–΄ μ ‘κ·Όν•œλ‹€.

Setter/Getter > 객체 λ‚΄μ™ΈλΆ€λ₯Ό μ—°κ²°ν•˜λŠ” ν†΅λ‘œ > μΈν„°νŽ˜μ΄μŠ€ μ—­ν•  > ν”„λ‘œνΌν‹°(Property)

Setter

  1. setλ©€λ²„λ³€μˆ˜λͺ…
  2. return void

Getter

  1. getλ©€λ²„λ³€μˆ˜λͺ…
  2. return κ°’

μ€‘μš”! μ˜μ—­μ΄ 큰 μš”μ†Œμ™€ μ˜μ—­μ΄ μž‘μ€ μš”μ†Œκ°€ μΆ©λŒν•˜λ©΄, λ°˜λ“œμ‹œ μž‘μ€ μ˜μ—­μ˜ μš”μ†Œλ₯Ό μš°μ„ ν•œλ‹€. > λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž˜λ° ν™˜κ²½μ—μ„œ 적용

멀버 λ³€μˆ˜ > 클래슀 μ „μ—­ > title
지역 λ³€μˆ˜ > λ©”μ†Œλ“œ μ „μ—­ > title -> μš°μ„ 

this μ—°μ‚°μž

  • 객체 μ ‘κ·Ό μ—°μ‚°μž
  • 'λ‚˜'> 객체 자기 μžμ‹ μ„ κ°€λ¦¬ν‚€λŠ” ν‘œν˜„(μ˜ˆμ•½μ–΄)

κ³„μ‚°λœ ν”„λ‘œνΌν‹°

-> getter와 setterλŠ” 기본적으둜 private 멀버 λ³€μˆ˜λ₯Ό μ‘°μž‘ν•˜μ§€λ§Œ, 그게 ν•„μˆ˜κ°€ μ•„λ‹ˆλ‹€. > λ©€λ²„λ³€μˆ˜μ™€ 무관(?)ν•œ getter와 setterλ₯Ό λ§Œλ“€κΈ°λ„ ν•œλ‹€.


λ¬Έμ œν’€μ΄

92~94κΉŒμ§€ ν’€μ—ˆλ‹€. λ§ˆλ°©μ§„(79번)은 ν’€κ³ μžˆλ‹€. 클래슀 λ¬Έμ œλŠ” ν•΄λ‹Ή λ¬Έμ œλ§ˆλ‹€ νŒ¨ν‚€μ§€λ₯Ό λ§Œλ“€μ–΄ ν’€κΈ°λ‘œ ν–ˆλ‹€.


ꡭ취제 상담 2회차

직업 μ„ ν˜Έλ„ 검사(Lν˜•)κ³Ό ꡬ직쀀비도 검사 κ²°κ³Όλ₯Ό 읽고 μ„€λͺ…을 λ“€μ—ˆλ‹€. λ‹€μŒ 상담 μ „κΉŒμ§€ 단기 μ·¨μ—… νŠΉκ°•μ„ λ“€μ–΄μ˜€κΈ°λ‘œ ν•˜μ—¬, 였늘 μ„œλ₯˜μ „ν˜• κ°•μ˜λ₯Ό ν•˜λ‚˜ μˆ˜κ°•ν–ˆλ‹€.

profile
μ°¨κ·Όμ°¨κ·Ό ν•˜λ‚˜μ”©

0개의 λŒ“κΈ€