πŸ§‘β€πŸ’» μžλ°” κΈ°λ³Έ 문법 2 (class, constructor)

EthAnalogΒ·2025λ…„ 8μ›” 19일

Spring Boot

λͺ©λ‘ 보기
3/16
post-thumbnail

였늘 배운 핡심 3쀄 μš”μ•½

  • ν΄λž˜μŠ€λŠ” λ³€μˆ˜Β·ν•¨μˆ˜ 보관함 β†’ new 클래슀()둜 볡사본(object/instance) λ½‘μ•„μ„œ μ‚¬μš©
  • constructor(μƒμ„±μž)λŠ” object 생성 μ‹œ μžλ™ μ‹€ν–‰λ˜λŠ” μŠ€νŽ˜μ…œ ν•¨μˆ˜ β†’ this둜 μ΄ˆκΈ°κ°’ μ§€μ • κ°€λŠ₯
  • object 생성 μ‹œ νŒŒλΌλ―Έν„°λ₯Ό λ„£μ–΄ 맀번 λ‹€λ₯Έ 값을 λΆ€μ—¬ν•  수 있음

βœ… μ–΄λ–€ κΈ°λŠ₯을 λ§Œλ“œλŠ” 것인가?

  • 클래슀 생성과 ν™œμš© (class, new, object κ°œλ…)
  • μƒμ„±μž(constructor)와 this ν‚€μ›Œλ“œ ν™œμš©
  • 객체 생성 μ‹œ νŒŒλΌλ―Έν„°λ‘œ μ΄ˆκΈ°κ°’ μ§€μ •ν•˜κΈ°

πŸ‘‰ μ™œ 이걸 λ°°μ›Œμ•Ό ν•˜μ§€?

  • μžλ°”λŠ” 무쑰건 class λ‹¨μœ„λ‘œ μ½”λ“œ μ‹œμž‘ β†’ κΈ°λ³Έ ꡬ쑰 이해 ν•„μˆ˜
  • λ³€μˆ˜/ν•¨μˆ˜λ₯Ό λ¬Άμ–΄ 보관할 수 μžˆμ–΄ μ½”λ“œ 정리에 유리
  • 원본 데이터λ₯Ό ν΄λž˜μŠ€μ— λ³΄κ΄€ν•˜κ³ , objectλ₯Ό 볡사해 μ“°λ―€λ‘œ 데이터 μ•ˆμ „μ„±β†‘
  • μƒμ„±μžλ₯Ό ν™œμš©ν•˜λ©΄ 객체 생성 μ‹œ μ΄ˆκΈ°κ°’μ„ μœ μ—°ν•˜κ²Œ 쀄 수 μžˆμ–΄ μž¬μ‚¬μš©μ„±β†‘

πŸ“š κ°œλ… 정리

κ°œλ…μ„€λͺ…
classλ³€μˆ˜μ™€ ν•¨μˆ˜λ₯Ό λ³΄κ΄€ν•˜λŠ” ν‹€
object(instance)class 볡사본. new 클래슀()둜 생성
field/attribute클래슀 μ•ˆμ˜ λ³€μˆ˜
method클래슀 μ•ˆμ˜ ν•¨μˆ˜
constructor클래슀λͺ…κ³Ό λ™μΌν•œ μ΄λ¦„μ˜ μŠ€νŽ˜μ…œ ν•¨μˆ˜. object 생성 μ‹œ μžλ™ μ‹€ν–‰
thisμƒμ„±λœ object μžμ‹ μ„ 가리킴

βš™οΈ κ΅¬ν˜„ 흐름 및 μ½”λ“œ

πŸ“„ Test.java

// 클래슀 μ •μ˜
class Test {
    String name = "kim";
    void hello() {
        System.out.println("μ•ˆλ…•");
    }
}

πŸ“„ ShopApplication.java (main ν•¨μˆ˜ λ‚΄λΆ€)

// object 생성
Test test = new Test();

// λ³€μˆ˜/ν•¨μˆ˜ μ‚¬μš©
System.out.println(test.name);  // "kim"
test.hello();                   // "μ•ˆλ…•"

πŸ“„ Friend.java

// 기본 클래슀
class Friend {
    String name = "kim";
    int age = 20;
}
// μƒμ„±μž(Constructor) μΆ”κ°€
class Friend {
    String name;
    int age;

    // μƒμ„±μž
    Friend(String 이름, int λ‚˜μ΄) {
        this.name = 이름;
        this.age = λ‚˜μ΄;
    }
}
// πŸ“„ ShopApplication.java (main λ‚΄λΆ€)
Friend friend1 = new Friend("kim", 20);
Friend friend2 = new Friend("park", 20);

System.out.println(friend1.name); // kim
System.out.println(friend2.name); // park

πŸ“Œ μ‚¬μš©λœ κ°œλ… μš”μ•½

ν‚€μ›Œλ“œν•œ 쀄 μš”μ•½
classλ³€μˆ˜Β·ν•¨μˆ˜λ₯Ό λ³΄κ΄€ν•˜λŠ” ν‹€
object(instance)new 클래슀()둜 μƒμ„±λœ 볡사본
field/attribute클래슀 μ•ˆμ˜ λ³€μˆ˜
method클래슀 μ•ˆμ˜ ν•¨μˆ˜
constructorobject 생성 μ‹œ μžλ™ μ‹€ν–‰λ˜λŠ” ν•¨μˆ˜
thisν˜„μž¬ object μžμ‹ 

πŸ’‘ 이런 곳에 ν™œμš©ν•  수 μžˆμ–΄μš”

  • νšŒμ›, μƒν’ˆ, μ£Όλ¬Έ λ“± ν˜„μ‹€ 객체 λͺ¨λΈλ§
  • 데이터 원본을 μ•ˆμ „ν•˜κ²Œ λ³΄κ΄€ν•˜κ³  λ³΅μ‚¬λ³Έλ§Œ ν™œμš©
  • μƒμ„±μž νŒŒλΌλ―Έν„°λ‘œ λ‹€μ–‘ν•œ μ΄ˆκΈ°κ°’ μ„ΈνŒ… (예: μ‚¬μš©μž 이름/λ‚˜μ΄, μƒν’ˆ 이름/가격)

✍️ 개인 정리 및 회고

  • ν΄λž˜μŠ€λŠ” λ‹¨μˆœνžˆ β€œλ³€μˆ˜Β·ν•¨μˆ˜ λ³΄κ΄€ν•¨β€μœΌλ‘œ μ΄ν•΄ν•˜λ©΄ 뢀담이 μ€„μ—ˆλ‹€.
  • new둜 objectλ₯Ό μ°μ–΄λ‚΄μ•Όλ§Œ λ‚΄λΆ€ 데이터λ₯Ό μ“Έ 수 μžˆλ‹€λŠ” 점이 핡심.
  • constructorλŠ” 맀번 λ‹€λ₯Έ μ΄ˆκΈ°κ°’μ„ 쀄 수 μžˆμ–΄ μ‹€λ¬΄μ—μ„œ ꡉμž₯히 많이 쓰일 λ“―.
  • field, method, instance 같은 μš©μ–΄λŠ” 아직 λ‚―μ„€μ§€λ§Œ μ΅μˆ™ν•΄μ§€λ©΄ 객체지ν–₯ κ°œλ… 이해가 μ‰¬μ›Œμ§ˆ 것 κ°™λ‹€.

0개의 λŒ“κΈ€