관리 메뉴

Tech Log πŸ› οΈ

[java] 쀑첩 μ„ μ–Έκ³Ό 읡λͺ… 객체 λ³Έλ¬Έ

TIL

[java] 쀑첩 μ„ μ–Έκ³Ό 읡λͺ… 객체

sehaan 2023. 2. 23. 15:31

과거에 쀑첩 선언에 λŒ€ν•΄ μ •λ¦¬ν•œ 적이 μžˆμ§€λ§Œ λžŒλ‹€μ‹μ„ κ³΅λΆ€ν•˜λ‹€κ°€ κ°œλ…μ΄ ν—·κ°ˆλ €μ„œ 읡λͺ… 객체와 ν•¨κ»˜ λ³΅μŠ΅μ„ 진행함

https://cb036133.tistory.com/56

 

쀑첩 클래슀

- 클래슀 내뢀에 μ„ μ–Έν•œ 클래슀 

- 클래슀의 멀버λ₯Ό μ‰½κ²Œ μ‚¬μš©ν•  수 있고 μ½”λ“œμ˜ λ³΅μž‘μ„±μ„ 쀄일 수 μžˆλ‹€.

- νŠΉμ • ν΄λž˜μŠ€ν•˜κ³ λ§Œ 관계λ₯Ό 맺을 경우 쀑첩 클래슀둜 μ„ μ–Έν•˜λŠ” 것이 μœ μ§€λ³΄μˆ˜μ— 용이

 

멀버 클래슀

- 클레슀의 λ©€λ²„λ‘œμ„œ μ„ μ–Έλ˜λŠ” 쀑첩 클래슀

  1. μΈμŠ€ν„΄μŠ€ 멀버 클래슀 

  2. 정적 멀버 클래슀

 

둜컬 클래슀

  3. λ©”μ†Œλ“œκ°€ μ‹€ν–‰ν•  λ•Œλ§Œ B객체λ₯Ό 생성할 수 있음

 

1. μΈμŠ€ν„΄μŠ€ 멀버 클래슀 

   - 클래슀 λ‚΄λΆ€μ—μ„œ μ‚¬μš©λ˜λ―€λ‘œ privateμ ‘κ·Ό μ œν•œμ„ κ°–λŠ” 것이 일반적

   - μΈμŠ€ν„΄μŠ€ ν•„λ“œκ°’ , μƒμ„±μž , μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œμ—μ„œ 생성할 수 μ—†λ‹€ .( λ°”κΉ₯ 객체가 μžˆμ–΄μ•Ό B객체도 생성할 수 있기 λ•Œλ¬Έ)

   - μΈμŠ€ν„΄μŠ€ 멀버 클래슀λ₯Ό μ™ΈλΆ€μ—μ„œ μƒμ„±ν•˜λ €λ©΄  default λ˜λŠ” public μ ‘κ·Ό μ œν•œμ„ κ°€μ Έμ•Όν•œλ‹€.

   - 클래슀 λ‚΄λΆ€μ—λŠ” ν•„λ“œ , μƒμ„±μž , λ©”μ†Œλ“œ 선언이 올수 μžˆλ‹€.

   - 정적 ν•„λ“œμ™€ λ©”μ†Œλ“œλŠ” μžλ°” 17 λΆ€ν„° κ°€λŠ₯

 

2. 정적 멀버 클래슀

   - μ™ΈλΆ€μ—μ„œ μ‚¬μš©λ˜λŠ” κ²½μš°κ°€ 많기 λ•Œλ¬Έμ— default λ˜λŠ” public μ ‘κ·Ό μ œν•œμ„ 가진닀.

   - λ°”κΉ₯ 객체 λ‚΄λΆ€ μ–΄λ””μ—μ„œλ“  정적 멀버 클래슀 객체λ₯Ό 생성할 수 μžˆλ‹€.

   - 정적 멀버 클래슀 λ‚΄λΆ€μ—λŠ” ν•„λ“œ , μƒμ„±μž , λ©”μ†Œλ“œ 선언이 올 수 μžˆλ‹€.

 

3. 둜컬 클래슀

   - μƒμ„±μž λ˜λŠ” λ©”μ†Œλ“œ λ‚΄λΆ€μ—μ„œ μ„ μ–Έλœ ν΄λž˜μŠ€μ΄λ‹€.

   - μƒμ„±μžμ™€ λ©”μ†Œλ“œκ°€ 싀행될 λ™μ•ˆμ—λ§Œ 객체λ₯Ό 생성할 수 μžˆλ‹€.

   - ν•„λ“œ , μƒμ„±μž , λ©”μ†Œλ“œ 선언이 올 수 μžˆλ‹€. 

   - 정적 ν•„λ“œμ™€ 정적 λ©”μ†Œλ“œλŠ” μžλ°”17λΆ€ν„° κ°€λŠ₯

   - 둜컬 λ³€μˆ˜λ₯Ό 둜컬 클래슀 λ‚΄μ—μ„œ μ‚¬μš©ν•  경우 μžλ™μœΌλ‘œ final νŠΉμ„±μ„ κ°–κ²Œ λœλ‹€.

 

λ°”κΉ₯ 멀버 μ ‘κ·Ό 

 

정적 멀버 클래슀 λ‚΄λΆ€μ—μ„œλŠ” λ°”κΉ₯ 클래슀의 ν•„λ“œμ™€ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•  λ•Œ μ œν•œμ΄ λ”°λ₯Έλ‹€.

 

μΈμŠ€ν„΄μŠ€ 멀버 클래슀 : λ°”κΉ₯ 클래슀의 λͺ¨λ“  ν•„λ“œμ™€ λ©”μ†Œλ“œ

정적 멀버 클래슀 :  λ°”κΉ₯ 클래슀의 정적 ν•„λ“œμ™€ 정적 λ©”μ†Œλ“œ

 

쀑첩 클래슀 λ‚΄λΆ€μ—μ„œ λ°”κΉ₯ 클래슀의 객체λ₯Ό μ–»μœΌλ €λ©΄ λ°”κΉ₯ 클래슀 이름에 this λ₯Ό λΆ™μ—¬μ£Όλ©΄ λœλ‹€ !

ex) λ°”κΉ₯ν΄λž˜μŠ€μ΄λ¦„.this -> λ°”κΉ₯ 객체

 

쀑첩 μΈν„°νŽ˜μ΄μŠ€ 

- 클래슀의 λ©€λ²„λ‘œ μ„ μ–Έλœ μΈν„°νŽ˜μ΄μŠ€

- ν•΄λ‹Ή ν΄λž˜μŠ€μ™€ κΈ΄λ°€ν•œ 관계λ₯Ό λ§ΊλŠ” κ΅¬ν˜„ 객체λ₯Ό λ§Œλ“€ 수 μžˆλ‹€.

class A{
	[public|private] [static] interface B{
    	// μƒμˆ˜ ν•„λ“œ
        // 좔상 λ©”μ†Œλ“œ
        // λ””ν΄λ“œ λ©”μ†Œλ“œ
        // 정적 λ©”μ†Œλ“œ
    } 
}

 

읡λͺ… 객체 

- 이름이 μ—†λŠ” 객체

- λͺ…μ‹œμ μœΌλ‘œ 클래슀λ₯Ό μ„ μ–Έν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— μ‰½κ²Œ 객체λ₯Ό 생성할 수 μžˆλ‹€.

- ν•„λ“œκ°’ , 둜컬 λ³€μˆ˜κ°’, λ§€κ°œλ³€μˆ˜ κ°’μœΌλ‘œ μ‚¬μš©

 

읡λͺ… μžμ‹ 객체 : 클래슀λ₯Ό 상속

읡λͺ… κ΅¬ν˜„ 객체 : μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„

 

읡λͺ… μžμ‹ 객체

 

읡λͺ… μžμ‹ κ°μ²΄λŠ” λΆ€λͺ¨ν΄λž˜μŠ€λ₯Ό 상속받아 λ‹€μŒκ³Ό 같이 μƒμ„±λœλ‹€.

new λΆ€λͺ¨μƒμ„±μž(λ§€κ°œκ°’, ...){
 	//ν•„λ“œ
    //λ©”μ†Œλ“œ
}

μ΄λ ‡κ²Œ μƒμ„±λœ κ°μ²΄λŠ” λΆ€λͺ¨ νƒ€μž…μ˜ ν•„λ“œ, 둜컬 λ³€μˆ˜ , λ§€κ°œλ³€μˆ˜μ˜ κ°’μœΌλ‘œ λŒ€μž… κ°€λŠ₯

 

읡λͺ… κ΅¬ν˜„ 객체

 

읡λͺ… κ΅¬ν˜„ κ°μ²΄λŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•΄μ„œ λ‹€μŒκ³Ό 같이 μƒμ„±λœλ‹€.

new μΈν„°νŽ˜μ΄μŠ€(λ§€κ°œκ°’, ...){
 	//ν•„λ“œ
      //λ©”μ†Œλ“œ
}

μ€‘κ΄„ν˜Έ λΈ”λ‘μ•ˆμ—λŠ” 주둜 μΈν„°νŽ˜μ΄μŠ€μ˜ 좔상 λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜ν•˜λŠ” μ½”λ“œκ°€ μ˜¨λ‹€.