ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

ํ˜• ๋ณ€ํ™˜ (type casting)


๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ

byte(1) < short(2), char(2) < int(4) < long(8) < float(4) < double(8) 

 


- float์€ 4๋ฐ”์ดํŠธ์ธ๋ฐ long๋ณด๋‹ค ํฐ ํƒ€์ž…์ธ ์ด์œ ๋Š” ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ float์ด ๋” ํฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

- ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํฌ๊ธฐ๊ฐ€ ํฐ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ๋Š” ์บ์ŠคํŠธ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ž๋™์œผ๋กœ ํ˜• ๋ณ€ํ™˜์ด ์ผ์–ด๋‚œ๋‹ค. (์ž๋™ ํ˜• ๋ณ€ํ™˜: Promotion) 

- ํฌ๊ธฐ๊ฐ€ ํฐ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์บ์ŠคํŠธ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€ํ™˜ํ•  ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค. (๊ฐ•์ œ ํ˜• ๋ณ€ํ™˜: Type Casting). ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 

- ์„œ๋กœ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ์˜ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•  ๊ฒฝ์šฐ ๋‘ ๋ฐ์ดํ„ฐ ์ค‘ ํฐ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ€์ง„ ์ชฝ์— ๋งž์ถ”์–ด ์ž๋™ ํ˜• ๋ณ€ํ™˜๋œ ํ›„ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•œ๋‹ค. 

- intํ˜•๋ณด๋‹ค ์ž‘์€ ๋ฐ์ดํ„ฐํƒ€์ž…์˜ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•  ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ intํ˜•์œผ๋กœ ํ˜• ๋ณ€ํ™˜์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class CastingEx1 {
 
    public static void main(String[] args) {
 
        /*
         * <promotion / Upcasting>
         * ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋ฅผ ํฐ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ๋Š”
         * ์ž๋ฐฉ ๊ฐ€์ƒ ๋จธ์‹ ์ด ํƒ€์ž…์„ ์ž๋™์œผ๋กœ ์—ด๋ ค์„œ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค.
         * 
         */
        
        byte b = 10;
        int i = b; //byte -> int ์ž๋™์œผ๋กœ ํ˜• ๋ณ€ํ™˜๋˜์–ด์„œ ๋Œ€์ž…
        System.out.println(i);
        
        char c = '๊ฐ€';
        int j = c; //char -> int ์ž๋™ํ˜• ๋ณ€ํ™˜
        System.out.println("๊ฐ€์˜ ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’ : " + j);
    
        int k = 500;
        double d = k; //int -> double ์ž๋™ํ˜• ๋ณ€ํ™˜
        //500์œผ๋กœ ๋‚˜์˜ค๋Š”๋ฐ ์‹ค์ˆ˜๋ถ€ ๊นŒ์ง€ ๋‚˜์˜จ๋‹ค
        System.out.println(d);
    }
}
 
 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class CastingEx2 {
 
    public static void main(String[] args) {
 
        /*
         * <Downcasting>
         * ํฌ๊ธฐ๊ฐ€ ํฐ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ž‘์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด
         * ๋ฐ˜๋“œ์‹œ ์บ์ŠคํŠธ ์—ฐ์‚ฐ์ž(type)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€ํ™˜ํ•ด์•ผํ•œ๋‹ค.
         * 
         * Downcasting์˜ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ์†์‹ค์ด ์ผ์–ด๋‚  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
         * ๋ช…์‹œ์  ํ˜•๋ณ€ํ™˜์œผ๋กœ ํƒ€์ž… ๋ณ€ํ™˜์„ ํ•ด์•ผํ•จ.
         * 
         * <overflow, underflow>
         * ๊ฐ•์ œ ํƒ€์ž…๋ณ€ํ™˜ ์‚ฌ์šฉ์‹œ ์ฃผ์˜ํ•  ์ 
         * ํ•ด๋‹น ํƒ€์ž…์ด ๋ฐ›์„์ˆ˜ ์—†๋Š” ๋ฒ”์œ„์˜ ๊ฐ’์ด ๋“ค์–ด์˜ค๋ฉด ์“ฐ๋ ˆ๊ธฐ ๊ฐ’์ด ์ €์žฅ๋จ
         * 
         */
        
        int i = 72;
        char c = (char)i; //int -> charํ˜•์œผ๋กœ ๊ฐ•์ œ ํ˜•๋ณ€ํ™˜
        System.out.println("72์˜ ๋ฌธ์ž๊ฐ’ : " + c);
        
        double d = 4.123;
        int j = (int)d;
        System.out.println(j);
        
        int k = 1000;
        byte b = (byte)k;
        System.out.println(b);
        //byte๋ฒ”์œ„๋ฅผ ๋„˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ๋จ
    }
}
 
 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class CastingOper {
 
    public static void main(String[] args) {
        
        char c = 'A';
        int i = 2;
        
        char cc = (char)(c + i); //int์™€ char์˜ ๊ฒฐํ•ฉ์ด๋ผ ์ตœ์ข…๊ฒฐ๊ณผ๊ฐ€ int์ด๋‹ค.
        System.out.println(cc);
        
        int ii = c + i;
        System.out.println(ii);
        
        int j = 10;
        double d = j + 4//์ตœ์ข…๊ฒฐ๊ณผ๊ฐ€ intํ˜•
        System.out.println(d);
        
        int k = 10;
        double dd = 4.1;
        int jj = (int)(k + dd); //์ตœ์ข…๊ฒฐ๊ณผ๊ฐ€ double
        System.out.println(jj);
        
        byte b1 = 100;
        byte b2 = 70;
        byte b3 = (byte)(b1 + b2); //์ตœ์ข…๊ฒฐ๊ณผ๋Š” intํ˜•(intํ˜•๋ณด๋‹ค ์ž‘์€์• ๋“ค byte + byte์ด๊ธฐ ๋•Œ๋ฌธ์—)
        System.out.println(b3); //๋„˜์ณ์„œ ์ด์ƒํ•œ ๊ฐ’์ด ์ €์žฅ๋œ๋‹ค.
    }
}
 
 

 

๋ฐ˜์‘ํ˜•

'(๊ตฌ)Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

04 Java ๋ฐฐ์—ด  (0) 2019.04.29
03 Java ์—ฐ์‚ฐ์ž(Operator)  (0) 2019.04.29
02 Java ๋ฐ์ดํ„ฐ ํƒ€์ž…  (0) 2019.04.29
02 Java ๋ณ€์ˆ˜  (0) 2019.04.29
02 Java ์‹๋ณ„์ž  (0) 2019.04.29
๋Œ“๊ธ€