객체(Object)D05πŸ”°

μ΅œμ„±μ§„Β·2023λ…„ 1μ›” 29일
0

Java

λͺ©λ‘ 보기
8/32

객체(Object)

1. κ°μ²΄λž€?

  • ν”„λ‘œκ·Έλž¨μ—μ„œ ν‘œν˜„ν•˜κ³ μž ν•˜λŠ” κΈ°λŠ₯을 λ¬ΆκΈ° μœ„ν•œ λ‹¨μœ„

2. 객체λ₯Ό κ΅¬μ„±ν•˜λŠ” λ‹¨μœ„

  • 객채λ₯Ό μ΄λ£¨λŠ” 것은 데이터와 κΈ°λŠ₯이닀.

  • λ°μ΄ν„°λŠ” λ³€μˆ˜λ‘œ ν‘œν˜„

    • κ°μ²΄μ•ˆμ— ν¬ν•¨λœ λ³€μˆ˜λ₯Ό 'λ©€λ²„λ³€μˆ˜', 'μ „μ—­λ³€μˆ˜', 'ν”„λ‘œνΌν‹°', 'ν•„λ“œ'
  • κΈ°λŠ₯은 λ©”μ„œλ“œλ‘œ ν‘œν˜„λœλ‹€.

3. ν΄λž˜μŠ€μ™€ 객체의 관계

  • 객체λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•΄μ„œλŠ” 객체의 섀계도가 ν•„μš”ν•˜λ‹€.
  • 객체의 섀계도 역할을 ν•˜λŠ” ν”„λ‘œκ·Έλž¨ μ†ŒμŠ€ -> 클래슀(Class)

4. 클래슀(Class)

  • 객체의 섀계도 역할을 ν•˜λŠ” ν”„λ‘œκ·Έλž¨ μ†ŒμŠ€
  • 곡μž₯μ—μ„œ ν•˜λ‚˜μ˜ 섀계도λ₯Ό 가지고 μ—¬λŸ¬ 개의 μ œν’ˆμ„ 생산할 수 μžˆλŠ” κ²ƒμ²˜λŸΌ
    ν•˜λ‚˜μ˜ 클래슀λ₯Ό 톡해 λ™μΌν•œ ꡬ쑰λ₯Ό κ°–λŠ” 객체λ₯Ό μ—¬λŸ¬κ°œ 생성할 수 μžˆλ‹€.

5. 클래슀의 κΈ°λ³Έ μž‘μ„± 방법

class ν΄λž˜μŠ€μ΄λ¦„{
	λ©€λ²„λ³€μˆ˜;
	void λ©”μ„œλ“œμ΄λ¦„(){
		...
	}	
}
  • classλΌλŠ” μ˜ˆμ•½μ–΄μ™€ 클래슀의 이름을 λͺ…μ‹œν•˜κ³ {...}블둝을 ꡬ성
  • λ©€λ²„λ³€μˆ˜λŠ” μ—¬λŸ¬κ°œ μ‘΄μž¬ν•  수 μžˆλ‹€. μ΄λ•Œ, 값을 μ„ μ–Έκ³Ό λ™μ‹œμ— ν• λ‹Ήν•  μˆ˜λ„ 있고,
    객체λ₯Ό 톡해 κ°„μ ‘μ μœΌλ‘œ ν• λ‹Ήν•  μˆ˜λ„ μžˆλ‹€.
  • λ©”μ„œλ“œλŠ” μ—¬λŸ¬ 개 μ‘΄μž¬ν•  수 μžˆλ‹€
  • 클래슀 μ•ˆμ— ν¬ν•¨λœ λ©€λ²„λ³€μˆ˜μ™€ λ©”μ„œλ“œλ₯Ό νŠΉμ„±μ— 따라 κ·Έλ£Ήν™” ν•˜κΈ° μœ„ν•œ 기법이
    클래슀λ₯Ό μž‘μ„±ν•˜λŠ” 것이라고 이해할 수 μžˆλ‹€.

6. 객체의 생성

  • 객체의 μ„ μ–Έ
ν΄λž˜μŠ€μ΄λ¦„ 객체이름;
Name name;
  • 객체의 ν• λ‹Ή
객체이름 = new ν΄λž˜μŠ€μ΄λ¦„();
name = new Name();
  • μ„ μ–Έκ³Ό ν• λ‹Ήμ˜ 톡합
ν΄λž˜μŠ€μ΄λ¦„ 객체이름 = new ν΄λž˜μŠ€μ΄λ¦„();
Name name = new Name();

7. 객체의 μ‚¬μš©

  • κ°μ²΄μ•ˆμ— ν¬ν•¨λœ λ³€μˆ˜λ‚˜ λ©”μ„œλ“œλ₯Ό 점(.)으둜 μ—°κ²°ν•˜μ—¬ μ ‘κ·Όν•œλ‹€.
객체이름.λ©€λ²„λ³€μˆ˜;
객체이름.λ©”μ„œλ“œ();
std.name = "홍길동";

8. 값이 λŒ€μž…λ˜μ§€ μ•Šμ€ λ©€λ²„λ³€μˆ˜λ₯Ό κ°–λŠ” 클래슀

  • ν΄λž˜μŠ€λž€ 객체λ₯Ό μœ„ν•œ 틀을 μ œκ³΅ν•˜λŠ” 것이기 λ•Œλ¬Έμ— 클래슀 μž‘μ„±κ³Όμ •μ—μ„œ λ©€λ²„λ³€μˆ˜μ—
    λŒ€μž…λœ 값은, 객체λ₯Ό ν†΅ν•˜μ—¬ λ©€λ²„λ³€μˆ˜μ˜ 값을 μ§€μ •ν•˜κΈ° μ „κΉŒμ§€ μ‚¬μš©λ  "κΈ°λ³Έκ°’"μœΌλ‘œμ„œμ˜ μ˜λ―Έμ΄λ‹€.
  • 객체λ₯Ό ν†΅ν•˜μ—¬ μƒˆλ‘œμš΄ 값이 λŒ€μž…λ˜λ©΄ 클래슀 μž‘μ„±μ‹œμ— λ©€λ²„λ³€μˆ˜μ— λŒ€μž…ν•œ 값은 의미λ₯Ό μžƒμ–΄λ²„λ¦¬κ²Œ λœλ‹€.
  • λ•Œλ¬Έμ— 일반적으둜 클래슀λ₯Ό μž‘μ„±μ‹œμ—λŠ” λ©€λ²„λ³€μˆ˜μ— 값을 μ§€μ •ν•˜μ§€ μ•ŠλŠ”λ‹€.

9. λ©”μ„œλ“œλ₯Ό ν¬ν•¨ν•˜λŠ” 클래슀

  • λ©”μ„œλ“œλž€ ν”„λ‘œκ·Έλž¨μ—μ„œ ν•˜λ‚˜μ˜ λ™μž‘ λ‹¨μœ„λ₯Ό μ˜λ―Έν•œλ‹€.

  • 두 개 μ΄μƒμ˜ λ©”μ„œλ“œκ°€ μ„œλ‘œ λ™μΌν•œ λŒ€μƒμ„ μœ„ν•΄μ„œ μ‘΄μž¬ν•  경우,
    이 λ©”μ„œλ“œλ“€μ„ ν΄λž˜μŠ€μ— ν¬ν•¨μ‹œμΌœ κ·Έλ£Ήν™” ν•  수 μžˆλ‹€.

  • ν΄λž˜μŠ€μ— λ©€λ²„λ³€μˆ˜μ™€ λ©”μ„œλ“œκ°€ 곡쑴할 경우,
    λ©€λ²„λ³€μˆ˜λŠ” λͺ¨λ“  λ©”μ„œλ“œκ°€ κ³΅μœ ν•˜λŠ” μ „μ—­ λ³€μˆ˜λ‘œ μ‘΄μž¬ν•˜κ²Œ λœλ‹€.

  • λ³€μˆ˜μ˜ μ’…λ₯˜

    • λ©€λ²„λ³€μˆ˜(=μ „μ—­λ³€μˆ˜)
      : 클래슀 μ•ˆμ—μ„œ μ„ μ–Έλœ λ³€μˆ˜λ‘œμ¨, 클래슀 블둝 λ²”μœ„ μ•ˆμ—μ„œ μœ νš¨ν•˜λ‹€.
    • μ§€μ—­λ³€μˆ˜
      : λ©”μ„œλ“œ μ•ˆμ—μ„œ μ„ μ–Έλœ λ³€μˆ˜λ‘œμ¨, λ©”μ„œλ“œμ˜ 블둝을 λΉ μ Έλ‚˜κ°€μ§€ λͺ»ν•œλ‹€.
      κ·ΈλŸ¬λ―€λ‘œ λ‹€λ₯Έ λ©”μ„œλ“œλŠ” ν•΄λ‹Ή λ³€μˆ˜λ₯Ό μΈμ‹ν•˜μ§€ λͺ»ν•œλ‹€.
      이 κ·œμΉ™μ€ 쑰건문, 반볡문 같은 블둝{}을 ν˜•μ„±ν•˜λŠ” λͺ¨λ“  κ²½μš°μ— ν•΄λ‹Ήλœλ‹€.
  • null : 아무것도 μ•„λ‹Œ κ°’

10. λ©”μ„œλ“œλ§Œμ„ ν¬ν•¨ν•˜λŠ” 클래슀

  • 객체 μ•ˆμ— λ©€λ²„λ³€μˆ˜ (=데이터)κ°€ ν¬ν•¨λ˜μ§€ μ•ŠλŠ”λ‹€.
  • 객체 μ•ˆμ— ν¬ν•¨λœ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜μ—¬ κ²°κ³Όλ₯Ό λ§Œλ“€κΈ° μœ„ν•œ λͺ©μ μ΄λ―€λ‘œ
    ꡳ이 μ—¬λŸ¬ 개의 객체λ₯Ό 생성할 ν•„μš”κ°€ μ—†λ‹€.
profile
λ§ˆλΆ€λ¦¬μž…λ‹ˆλ‹€

0개의 λŒ“κΈ€