πŸ“˜ 221018 JAVA κ°œλ°œμΌμ§€ DAY+6 [ 클래슀 ]

rossiebiΒ·2022λ…„ 10μ›” 18일
0

πŸ’» JAVA κ°œλ°œμΌμ§€Β 

λͺ©λ‘ 보기
9/38
post-thumbnail

πŸ”” [ 객체와 클래슀 ]

객체λ₯Ό μƒμ„±ν• λ•ŒλŠ” 섀계도가 ν•„μš”ν•¨.
클래슀 -> 섀계도 / 객체 -> μ œν’ˆ

  • 클래슀의 μ •μ˜ : ν΄λž˜μŠ€λž€ 객체λ₯Ό μ •μ˜ν•΄ 놓은 것
  • 클래슀의 μš©λ„ : ν΄λž˜μŠ€λŠ” 객체λ₯Ό μƒμ„±ν•˜λŠ”λ° μ‚¬μš©
  • 객체의 μ •μ˜ : μ‹€μ œλ‘œ μ‘΄μž¬ν•˜λŠ” 것. 사물 λ˜λŠ” κ°œλ…
  • 객체의 μš©λ„ : 객체가 가지고 μžˆλŠ” κΈ°λŠ₯κ³Ό 속성에 따라 닀름

πŸ“’ 클래슀 μ„ μ–Έ

객체 생성을 μœ„ν•œ 섀계도 μž‘μ„±μ„ ν•˜λŠ” μž‘μ—…

//ν΄λž˜μŠ€μ„ μ–Έ
public class 클래슀λͺ… {
}

πŸ“’ 객체의 생성

클래슀λͺ… λ³€μˆ˜λͺ…;
λ³€μˆ˜λͺ… = new 클래슀λͺ…();

ex)
TV = tv();

πŸ“’ 클래슀의 ꡬ성 멀버

  1. ν•„λ“œ : 객체의 데이터λ₯Ό μ €μž₯ν•˜λŠ” μ—­ν• 
  2. μƒμ„±μž : new μ—°μ‚°μžλ‘œ 객체λ₯Ό μƒμ„±ν• λ•Œ 객체의 μ΄ˆκΈ°ν™” 역할을 λ‹΄λ‹Ή
  3. λ©”μ†Œλ“œ : 객체의 λ™μž‘μœΌλ‘œ ν˜ΈμΆœμ‹œ μ‹€ν–‰ν•˜λŠ” 블둝. 객체가 μˆ˜ν–‰ν•  λ™μž‘. 객체 λ‚΄λΆ€μ˜ ν•¨μˆ˜λŠ” λ©”μ†Œλ“œλΌκ³  뢀름

πŸ“’ μƒμ„±μž μ„ μ–Έκ³Ό 호좜

new μ—°μ‚°μžλŠ” 객체λ₯Ό μƒμ„±ν•œ ν›„ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•΄μ„œ 객체λ₯Ό μ΄ˆκΈ°ν™” ν•˜λŠ” 역할을 함

클래슀 λ³€μˆ˜ = new 클래슀();

πŸ“’ κΈ°λ³Έμƒμ„±μž

  • λͺ¨λ“  ν΄λž˜μŠ€λŠ” μƒμ„±μžκ°€ μ‘΄μž¬ν•˜λ©° ν•˜λ‚˜ 이상 κ°€μ§ˆ 수 있음
[public] 클래슀(){}

πŸ”” [ μƒμ„±μž μ˜€λ²„λ‘œλ”© ]

Overload : κ³Όμ ν•˜λ‹€

  • λ§€κ°œκ°’μœΌλ‘œ 객체의 ν•„λ“œλ₯Ό λ‹€μ–‘ν•˜κ²Œ μ΄ˆκΈ°ν™” ν•˜λ €λ©΄ μƒμ„±μž μ˜€λ²„λ‘œλ”©(Overloading)이 ν•„μš”ν•¨.
  • μƒμ„±μž μ˜€λ²„λ‘œλ”© : λ§€κ°œλ³€μˆ˜λ₯Ό λ‹¬λ¦¬ν•˜λŠ” μƒμ„±μžλ₯Ό μ—¬λŸ¬ 개 μ„ μ–Έν•˜λŠ” 것

πŸ”” [ λ©”μ†Œλ“œ μ„ μ–Έκ³Ό 호좜 ]

  • λ©”μ†Œλ“œ μ„ μ–Έ : 객체의 λ™μž‘μ„ μ‹€ν–‰λΈ”λ‘μœΌλ‘œ μ •μ˜ν•˜λŠ” 것
  • λ©”μ†Œλ“œ 호좜 : μ‹€ν–‰ 블둝을 μ‹€μ œλ‘œ μ‹€ν–‰ν•˜λŠ” 것

πŸ“’ λ¦¬ν„΄νƒ€μž…

  • λ¦¬ν„΄νƒ€μž…μ€ λ©”μ†Œλ“œκ°€ μ‹€ν–‰ν•œ ν›„ ν˜ΈμΆœν•œ 곳으둜 μ „λ‹¬ν•˜λŠ” κ²°κ³Όκ°’μ˜ νƒ€μž…μ„ 말함
  • 리턴값이 μ—†λŠ” λ©”μ†Œλ“œλŠ” void둜 μž‘μ„±ν•΄μ•Όν•¨

ex)
void powerOn // 리턴값이 μ—†λŠ” λ©”μ†Œλ“œ μ„ μ–Έ
double divide(int x, int y) // double νƒ€μž… 값을 리턴함

πŸ“’ λ©”μ†Œλ“œλͺ…

  • 첫 문자λ₯Ό μ†Œλ¬Έμžλ‘œ μ‹œμž‘, μΊλ©€μŠ€νƒ€μΌλ‘œ μž‘μ„±

πŸ“’ λ§€κ°œλ³€μˆ˜

  • λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν• λ•Œ μ „λ‹¬ν•œ λ§€κ°œκ°’μ„ λ°›κΈ° μœ„ν•΄ μ‚¬μš©
  • 전달할 λ§€κ°œκ°’μ΄ μ—†λ‹€λ©΄ λ§€κ°œλ³€μˆ˜ μƒλž΅ κ°€λŠ₯

πŸ”” [ returnλ¬Έ ]

  • return문은 λ©”μ†Œλ“œ 싀행을 κ°•μ œμ’…λ£Œν•˜κ³  ν˜ΈμΆœν•œ 곳으둜 λŒμ•„κ°„λ‹€λŠ” 뜻
  • λ©”μ†Œλ“œ 선언에 λ¦¬ν„΄νƒ€μž…μ΄ μžˆμ„ κ²½μš°μ—λŠ” return λ¬Έ 뒀에 리턴값을 μΆ”κ°€λ‘œ 지정해야함
  • returnλ¬Έ μ΄ν›„μ˜ 싀행문은 μ‹€ν–‰λ˜μ§€μ•ŠμŒ

πŸ”” [ λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”© ]

  • λ©”μ†Œλ“œ 이름은 κ°™λ˜ λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…, 개수, μˆœμ„œκ°€ λ‹€λ₯Έ λ©”μ†Œλ“œλ₯Ό μ—¬λŸ¬κ°œ μ„ μ–Έν•˜λŠ” 것을 말함

πŸ“’ μ˜€λ²„λ‘œλ”©μ˜ 쑰건

  • λ©”μ„œλ“œμ˜ 이름이 같아야함
  • λ§€κ°œλ³€μˆ˜μ˜ 개수 λ˜λŠ” νƒ€μž…μ΄ 달라야함
  • λ§€κ°œλ³€μˆ˜λŠ” κ°™κ³  λ¦¬ν„΄νƒ€μž…μ΄ λ‹€λ₯Έ κ²½μš°λŠ” μ˜€λ²„λ‘œλ”©μ΄ μ„±λ¦½λ˜μ§€ μ•ŠμŒ(λ¦¬ν„΄νƒ€μž…μ€ 영ν–₯X)

πŸ”” [ μΈμŠ€ν„΄μŠ€ 멀버 ]

  • ν•„λ“œμ™€ λ©”μ†Œλ“œλŠ” μ„ μ–Έ 방법에 따라 μΈμŠ€ν„΄μŠ€λ©€λ²„μ™€ μ •μ λ©€λ²„λ‘œ λΆ„λ₯˜ κ°€λŠ₯
  • μΈμŠ€ν„΄μŠ€ λ©€λ²„λ‘œ μ„ μ–Έλ˜λ©΄ 객체 생성 ν›„ μ‚¬μš© κ°€λŠ₯, 정적 λ©€λ²„λ‘œ μ„ μ–Έλ˜λ©΄ 객체 생성 없이 μ‚¬μš© κ°€λŠ₯

πŸ“’ μΈμŠ€ν„΄μŠ€ 멀버 μ„ μ–Έ 및 μ‚¬μš©

  • μΈμŠ€ν„΄μŠ€ 멀버 : 객체에 μ†Œμ†λœ 멀버 / 객체가 μžˆμ–΄μ•Όλ§Œ μ‚¬μš© κ°€λŠ₯ν•œ 멀버

πŸ”” [ 정적멀버 ]

  • λ©”μ†Œλ“œ μ˜μ—­μ˜ ν΄λž˜μŠ€μ— κ³ μ •μ μœΌλ‘œ μœ„μΉ˜ν•˜λŠ” 멀버
  • 객체 생성 λΆˆν•„μš” / 클래슀λ₯Ό 톡해 λ°”λ‘œ μ‚¬μš© κ°€λŠ₯
  • static ν‚€μ›Œλ“œλ₯Ό μΆ”κ°€
    ex) μ›μ˜ λ„“μ΄λ‚˜ λ‘˜λ ˆλ₯Ό κ΅¬ν• λ•Œ ν•„μš”ν•œ νŒŒμ΄λŠ” μ •μ ν•„λ“œλ‘œ μ„ μ–Έν•˜λŠ” 것이 μ’‹μŒ

πŸ”” [ final ν•„λ“œμ™€ μƒμˆ˜ ]

  • μΈμŠ€ν„΄μŠ€ ν•„λ“œμ™€ 정적 ν•„λ“œλŠ” μ–Έμ œλ“ μ§€ 값이 λ³€κ²½ 됨. 이λ₯Ό 막고 읽기만 ν—ˆμš©ν•˜κ³  싢을 λ•Œ finalν•„λ“œμ™€ μƒμˆ˜λ₯Ό μ„ μ–Έν•΄μ„œ μ‚¬μš©.

πŸ“’ final ν•„λ“œ μ„ μ–Έ

final νƒ€μž… ν•„λ“œ [=μ΄ˆκΈ°κ°’];

πŸ“’ μƒμˆ˜ μ„ μ–Έ

static final νƒ€μž… μƒμˆ˜ [=μ΄ˆκΈ°κ°’];

static final νƒ€μž… μƒμˆ˜;
static {
μƒμˆ˜ = μ΄ˆκΈ°κ°’;
}

profile
λΉ„μ „κ³΅μž 개발자λ₯Ό κΏˆκΎΈλŠ” λ‘œμ§€

0개의 λŒ“κΈ€