ν˜•λ³€ν™˜(Casting) D02πŸ”°

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

Java

λͺ©λ‘ 보기
4/32

πŸ”Ή ν˜•λ³€ν™˜(Casting)

(데이터 손싀을 막을 수 μžˆλ‹€)

1. ν˜•λ³€ν™˜μ΄λž€?

  • λ³€μˆ˜μ˜ μžλ£Œν˜•μ΄ λ³€ν™˜λ˜λŠ” 것을 μ˜λ―Έν•œλ‹€.
  • νŠΉμ • μžλ£Œν˜•μ˜ 값을 λ‹€λ₯Έ μžλ£Œν˜•μ˜ λ³€μˆ˜μ— λŒ€μž…ν•  수 μžˆλ‹€.
  • 암묡적 ν˜•λ³€ν™˜κ³Ό λͺ…μ‹œμ • ν˜•λ³€ν™˜μ˜ 두 μ’…λ₯˜κ°€ μžˆλ‹€.

2. 암묡적 ν˜•λ³€ν™˜(Up Casting)

  • 암묡적 ν˜•λ³€ν™˜μ€ μ„œλ‘œ λ‹€λ₯Έ μžλ£Œν˜•μ„ μ—°μ‚° ν˜Ήμ€ λŒ€μž…ν•˜λŠ” 경우,
    Java μ»΄νŒŒμΌλŸ¬κ°€ μžλ£Œν˜•μ„ ν†΅μΌν•œλ‹€.
    이 κ³Όμ •μ—μ„œ λ°œμƒν•˜λŠ” ν˜•λ³€ν™˜μ„ 암묡적 ν˜•λ³€ν™˜μ΄λΌκ³  ν•œλ‹€.
    (단, 데이터 손싀이 μ—†λŠ” κ²½μš°λ‹€)
	int a = 100;	// μ •μˆ˜ν˜•
	float b = a;	// μ •μˆ˜ν˜•μ„ μ‹€μˆ˜ν˜•μ— λŒ€μž…
  • 암묡적 ν˜•λ³€ν™˜μ€ μ–΄λ–€ λ³€μˆ˜κ°€ 더 큰 λ²”μœ„μ˜ λ³€μˆ˜λ‘œ λŒ€μž… κ°€λŠ₯함을 μ˜λ―Έν•œλ‹€.

3. λͺ…μ‹œμ  ν˜•λ³€ν™˜(Down Casting)

  • λ°μ΄ν„°μ˜ 손싀을 κ°μˆ˜ν•˜λ”λΌλ„, κ°•μ œλ‘œ ν˜•λ³€ν™˜ μ‹œν‚€λŠ” ν˜•νƒœ
	μžλ£Œν˜• b = (λ³€ν™˜ν• μžλ£Œν˜•) a;
  • μ‹€μˆ˜ν˜•μ„ μ •μˆ˜ν˜•μœΌλ‘œ λ³€ν™˜ν•˜λŠ” 경우, μ†Œμˆ˜μ  μ΄ν•˜ μžλ¦¬λŠ” 버렀진닀.
	double a = 3.14D;
	int b = (int)a;	// 3
profile
λ§ˆλΆ€λ¦¬μž…λ‹ˆλ‹€

0개의 λŒ“κΈ€