λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
κ°œμΈκ³΅λΆ€/JAVA

[μƒν™œμ½”λ”©] JAVA1 - 8. λ³€μˆ˜

by πŸ‡λ°•λ΄‰λ΄‰πŸ‡ 2022. 9. 9.

 

 

μƒν™œμ½”λ”© JAVA1

-  8.1 λ³€μˆ˜μ˜ μ •μ˜ -

-  8.2 λ³€μˆ˜μ˜ 효용 -

-  8.3 데이터 νƒ€μž…μ˜ λ³€ν™˜(casting) -

 


 

1. λ³€μˆ˜μ˜ μ •μ˜

μˆ˜ν•™μ—μ„œ λ³€μˆ˜λŠ” κ·Έ 값이 λ³€ν•  수 μžˆλŠ” 문자λ₯Ό μ˜λ―Έν•œλ‹€.

μžλ°”μ—μ„œλ„ λ§ˆμ°¬κ°€μ§€λ‘œ λ³€μˆ˜λŠ” μˆ˜ν•™μ—μ„œμ²˜λŸΌ λΉ„μŠ·ν•œ 의미λ₯Ό λ‚˜νƒ€λ‚΄μ§€λ§Œ λ‹€λ₯Έ 점은 λ³€μˆ˜λ₯Ό λ§Œλ“€ λ•Œ ν•΄λ‹Ή λ³€μˆ˜κ°€ μ–΄λ– ν•œ 데이터 νƒ€μž…μΈμ§€λ₯Ό 미리 지정해 μ£Όμ–΄μ•Ό ν•œλ‹€λŠ” 것이닀.

 

int a = 1; // Number -> integer(μ •μˆ˜) ... -2, -1, 0, 1, 2, ...
System.out.println(a); // 1
		
double b = 1.1; // real number -> double(μ‹€μˆ˜)
System.out.println(b); // 1.1
		
String c = "Hello World"; // String(λ¬Έμžμ—΄)
System.out.println(c); // Hello World

보기처럼 λ§Œμ•½ λ‚΄κ°€ λ„£μœΌλ €κ³  ν•˜λŠ” 값이 μ •μˆ˜(integer)라면 intλ₯Ό, μ‹€μˆ˜(real number)라면 double을, λ§ˆμ§€λ§‰μœΌλ‘œ λ¬Έμžμ—΄μ΄λΌλ©΄ String을 λ³€μˆ˜ μ•žμ— μž‘μ„±ν•΄μ€ŒμœΌλ‘œμ¨ λ³€μˆ˜μ— λ“€μ–΄κ°ˆ 데이터 ν˜•μ‹μ„ 지정해 μ£Όλ©΄ λœλ‹€.

 

λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ 맀번 데이터 νƒ€μž…μ„ μž…λ ₯ν•΄μ•Ό ν•œλ‹€λŠ” λΆˆνŽΈν•¨μ΄ μžˆμ„ 수 μžˆμ§€λ§Œ λ°˜λŒ€λ‘œ 생각해보면 μ½”λ“œμ•ˆμ— μžˆλŠ” μ–΄λ– ν•œ 값을 κΊΌλ‚Όλ•Œλ§ˆλ‹€ κ·Έ κ°’μ˜ 데이터 νƒ€μž…μ„ 맀번 ν™•μΈν•˜μ§€ μ•Šμ•„λ„ λœλ‹€.

 


2. λ³€μˆ˜μ˜ 효용

μœ„μ—μ„œ μ„€λͺ…ν•œ 것 처럼 λ³€μˆ˜λŠ” 데이터 νƒ€μž…μ„ νŒŒμ•…ν•˜λŠ”λ° μœ μš©ν•˜μ§€λ§Œ 더 μ€‘μš”ν•œ μž₯점이 μ‘΄μž¬ν•œλ‹€.

 

System.out.println("Hello, suhyeon ... suhyeon ... suhyeon ... bye");
		
String name = "suhyeon";
System.out.println("Hello, " + name + " ... " + name + " ... suhyeon ... bye");

μœ„μ˜ μ½”λ“œλŠ” 이전에 λ°μ΄ν„°μ˜ 연산을 μ•Œμ•„λ³΄λ©΄μ„œ μ‚¬μš©ν–ˆλ˜ λ¬Έμž₯이닀.

이전에 쀑간에 μžˆλŠ” 이름을 λ³€κ²½ν•˜κΈ° μœ„ν•΄ 이전에 replaceλ₯Ό μ‚¬μš©ν–ˆμ—ˆλŠ”λ° λ³€μˆ˜λ₯Ό ν™œμš©ν•΄μ„œ 같은 κ²°κ³Όλ₯Ό λ‚Ό 수 μžˆλŠ” 방법은 μ• μ΄ˆμ— 이름을 nameμ΄λΌλŠ” λ³€μˆ˜μ— λ„£κ³  λ¬Έμž₯을 μž‘μ„±ν•  λ•Œμ—λ„ λ³€μˆ˜ name을 ν¬ν•¨μ‹œμΌœμ„œ 좜λ ₯μ‹œν‚€λ©΄ 같은 κ²°κ³Όκ°€ λ‚˜μ˜€λŠ” 것을 확인할 수 μžˆλ‹€.

 

λ˜ν•œ 이전에 λ‚΄κ°€ λ°”κΎΈλ €λŠ” λŒ€μƒμ΄ 무엇인지 잘 νŒŒμ•…ν•  수 μ—†μ—ˆμ§€λ§Œ μ§€κΈˆμ€ λ³€μˆ˜μ˜ 이름이 nameμ΄λΌλŠ” 것을 톡해 λ‚΄κ°€ λ°”κΎΈλ €κ³  ν•˜λŠ” λŒ€μƒμ΄ 무엇인지에 λŒ€ν•΄ νŒŒμ•…ν•  수 있게 λ˜μ—ˆλ‹€.

 

 

System.out.println(10.0);
		
double VAT = 10.0;
System.out.println(VAT);

λ˜λ‹€λ₯Έ μ˜ˆμ‹œλŠ” λ§Œμ•½ λ‚΄κ°€ λ‹¨μˆœνžˆ 10.0을 좜λ ₯ν•œλ‹€λŠ” λͺ…령을 μž…λ ₯ν•˜λ©΄ 이 μ½”λ“œλ₯Ό λ³Έ μ‚¬λžŒμ€ 10.0이 무엇을 λ‚˜νƒ€λ‚΄λŠ”μ§€ μ•ŒκΈ° μ–΄λ ΅λ‹€.

ν•˜μ§€λ§Œ λ‚΄κ°€ VATλΌλŠ” λ³€μˆ˜μ— 10.0μ΄λΌλŠ” 값을 λ„£κ³  VATλ₯Ό 좜λ ₯ν•˜λŠ” λͺ…령을 내리면 λ‚΄κ°€ 좜λ ₯ν•˜λ €λŠ” 값이 λΆ€κ°€κ°€μΉ˜μ„ΈλΌλŠ” 의미λ₯Ό νŒŒμ•…ν•  수 μžˆλ‹€.

 

μ½”λ“œλŠ” ν˜„μž¬μ˜ λ‚΄κ°€, 미래의 λ‚΄κ°€, λ‚΄κ°€ μ•„λ‹Œ λ˜λ‹€λ₯Έ λˆ„κ΅°κ°€κ°€ μΆ©λΆ„νžˆ λ³Ό 수 있기 λ•Œλ¬Έμ— λͺ…ν™•ν•˜κ²Œ μž‘μ„±ν•˜λŠ” 것이 맀우 μ€‘μš”ν•˜λ‹€.

κ·ΈλŸ¬λ―€λ‘œ λ³€μˆ˜λŠ” μ •ν™•ν•˜κ³  νŒŒμ•…ν•˜κΈ° μ‰¬μš΄ μ½”λ“œλ‘œ λ§Œλ“œλŠ”λ° 큰 κΈ°μ—¬λ₯Ό ν•˜λŠ” μ€‘μš”ν•œ 역할이닀.

 


3. 데이터 νƒ€μž…μ˜ λ³€ν™˜(casting)

 

double a = 1.1; // 1.1
double b = 1; // 1.0

1.1은 doubleν˜•μ΄λ©°, 1은 intν˜•μ΄λ‹€.

μ΄λ•Œ 1을 μ •μˆ˜ν˜•μ΄ μ•„λ‹Œ μ‹€μˆ˜ν˜•μΈ λ³€μˆ˜ b에닀가 λ‹΄λŠ” 것을 μ‹œλ„ ν–ˆμ„ λ•Œ μ—λŸ¬κ°€ λ°œμƒλ˜μ§€ μ•ŠμœΌλ©° μ΄λ•Œ bλŠ” 1.0이 λ‹΄κ²¨μžˆλŠ” 것을 확인할 수 μžˆλ‹€.

 

int c = 1.1; // μ—λŸ¬λ°œμƒ
double d = 1.1; // 1.1

λ°˜λŒ€λ‘œ μ‹€μˆ˜μΈ 1.1을 μ •μˆ˜ν˜•μΈ λ³€μˆ˜ c에 λ„£λŠ” μ‹œλ„λ₯Ό ν–ˆμ„ λ•Œμ—λŠ” μ—λŸ¬κ°€ λ°œμƒλœλ‹€.

μ΄λŸ¬ν•œ ν˜„μƒμ΄ μƒκΈ°λŠ” μ΄μœ λŠ” μ‹€μˆ˜ν˜•μ€ μ†Œμˆ˜μ μ΄ 있고 μ •μˆ˜ν˜•μ€ μ†Œμˆ˜μ μ΄ μ—†κΈ° λ•Œλ¬Έμ— 1.1을 μ •μˆ˜ν˜•μœΌλ‘œ λ°”κΏ”μ€€λ‹€κ³  ν–ˆμ„ λ•Œ 0.1μ΄λΌλŠ” 값을 μžƒμ–΄λ²„λ¦¬κΈ° λ•Œλ¬Έμ΄λ‹€.

 

int e = (int) 1.1; // 1

μ‹€μˆ˜μΈ 1.1을 μ •μˆ˜λ‘œ λ°”κΎΈλŠ” 방법은 μ΄ν΄λ¦½μŠ€μ—μ„œ μ•Œλ €μ£ΌλŠ” 해결법을 ν† λŒ€λ‘œ 확인할 수 μžˆλŠ”λ° λ°”λ‘œ λ³€μˆ˜μ— 담을 κ°’ μ•žμ— 'κ΄„ν˜Έ() + λ°”κΎΈκ³ μžν•˜λŠ” νƒ€μž…'을 λ„£μ–΄μ£ΌλŠ” κ²ƒμœΌλ‘œ κ°•μ œλ‘œ ν˜•λ³€ν™˜μ„ ν•΄μ£ΌλŠ” 것이닀.

ν˜•λ³€ν™˜ν›„ κ²°κ³Όλ₯Ό ν™•μΈν•˜λ©΄ ν˜•λ³€ν™˜μ΄ 이루어져 μžˆλ‹€λŠ” 것을 확인할 수 μžˆλ‹€.

 

즉, 1.1을 κ°•μ œλ‘œ μ •μˆ˜λ‘œ λ°”κΎΈλ©΄ μ†Œμˆ˜μ  밑에 μžˆλŠ”κ²Œ 완전지 사라지기 λ•Œλ¬Έμ— 손싀이 μΌμ–΄λ‚œλ‹€.

κ·Έλ ‡κΈ° λ•Œλ¬Έμ— λ‚΄κ°€ λͺ…μ‹œμ μœΌλ‘œ int라고 ν•˜κΈ° μ „κΉŒμ§€λŠ” μžλ™μœΌλ‘œ ν˜•λ³€ν™˜μ΄ λ˜μ§€ μ•ŠλŠ” 것이닀.

 

λ°˜λŒ€λ‘œ, 1을 μ‹€μˆ˜ν˜•μœΌλ‘œ μžλ™μœΌλ‘œ ν˜•λ³€ν™˜μ΄ κ°€λŠ₯ν–ˆλ˜κ²ƒμ€ 손싀이 μ—†μ—ˆκΈ° λ•Œλ¬Έμ— κ°€λŠ₯ν–ˆλ˜ 것이닀.

 

// 1 to String
String f = Integer.toString(1); // String 1
System.out.println(f.getClass()); // class java.lang.String

μ΄λ²ˆμ—λŠ” μ •μˆ˜ 1을 λ¬Έμžν˜•μœΌλ‘œ λ°”κΎΈλŠ” 방법이닀.

μ •μˆ˜ν˜•μΈ 숫자 1을 λ¬Έμžν˜•μœΌλ‘œ λ°”κΎΈλŠ” 방법법은 toString()을 μ‚¬μš©ν•΄μ£ΌλŠ” κ²ƒμœΌλ‘œ 좜λ ₯ν–ˆμ„κ²½μš° 숫자1이 μ•„λ‹ˆλΌ λ¬Έμžμ—΄ 1이 좜λ ₯λœλ‹€.

μ΄λ•Œμ˜ 1의 νƒ€μž…μ„ 확인해보면 μ œλŒ€λ‘œ λ¬Έμžμ—΄μ΄λΌλŠ” 것을 확인할 수 μžˆλ‹€.

 

 

λ°˜μ‘ν˜•

λŒ“κΈ€