hyeonga_code

Java_16_Wrapper Class 래퍼클래스, 언박싱, 박싱 본문

Java

Java_16_Wrapper Class 래퍼클래스, 언박싱, 박싱

hyeonga 2023. 9. 16. 05:59
반응형

- Wrapper class
            - Unboxing_언박싱
                - 참조형 데이터를 기본형 데이터 타입으로 형 변환합니다.
                '참조형 데이터 타입'.parse'참조형 데이터 타입_첫 글자 대문자'('형 변환 할 변수');
            - Boxing_박싱
                - 기본형 데이터를 참조형 데이터 타입으로 형 변환합니다.
                '변환할 참조형 데이터 타입'.valueOf('형 변환 할 변수');

'TypeConversion.java'
=====

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package basic;
//모든 클래스는 패키지 안에 생성합니다.
 
public class TypeConversion {
    // 모든 함수_메소드는 클래스 안에 작성합니다.
 
    public static void main(String[] args) {
        // Java의 모든 코드는 함수 안에 작성합니다.
 
        double doubleNum = 3.14;
        int  intNum = (int)doubleNum;   // 소수점이 절삭되어 정수형으로 저장됩니다.
            // > 기본형 타입 변환
        System.out.println("doubleNum : " + doubleNum);
        System.out.println("intNum : " + intNum);
            /*
            doubleNum : 3.14
            intNum : 3
            */
        byte a = 10;
        byte b = 10;
        //
        /* 
          byte c = a + b;
             - 오류 _ Exception in thread "main" java.lang.Error: 
                     Unresolved compilation problem:
                    Type mismatch: cannot convert from int to byte 
        */
        
        /*
          byte c = (byte)(a + b);
              - int형으로 받아줘야 하므로 byte형으로 변환해주어야 합니다.
         */
        int c = a + b;
        
        System.out.println(c);    // > 20
 
        
        int d = 10;
        float e = 10.23f;
        
        /* 
          int f = d + e;
              - 오류 _ Exception in thread "main" java.lang.Error: 
                      Unresolved compilation problem: 
                    Type mismatch: cannot convert from float to int 
        */
        int f = (int)(d + e);
        // float이 int 보다 큰 값이므로 int형으로 변환해주어야 합니다.
        
        System.out.println(f);    // > 20
        
        String st1 = "1", st2 = "2";
            // 동일한 데이터 타입을 가지는 경우 콤마로 연속해서 선언할 수 있습니다.
        String st3 = st1 + st2;
        
        System.out.println("st3 : " + st3);        // > 12
            // 문자열에 숫자가 있더라도 문자열로 취급합니다.
        
        int num1 = 10;
        System.out.println(st2 + num1);            // > 210
            // 문자열과 정수형의 연산에서는 모두 문자열로 취급합니다.
        
        // Wrapper class
        /*
          int num2 = (int)st2;    
              - 오류 : Cannot cast from String to int
              - 외부에서 받아오는 값은 모두 문자열로 인식합니다.
              - String은 Heap에 값이 저장되기 때문에 외부로 인식합니다.
              
              (int)_기본형 st2_참조형
              - 기본형은 참조형으로 직접적으로 변환이 불가합니다.
              
              - Stack 간의 변환, Heap 간의 변환은 가능합니다.
              
              >>> Heap의 데이터를 Stack으로 옮기는 방법을 사용합니다.
        */
        
        int num2 = Integer.parseInt(st2);
            // 문자열의 데이터를 Stack의 int형 데이터 타입으로 형 변환합니다.
        
        System.out.println( num2 + 3 );        // > 5
    }
}
 
cs
반응형

'Java' 카테고리의 다른 글

Java_18_표준 입출력  (0) 2023.09.17
Java_17_문자 데이터 문자, 문자열  (0) 2023.09.16
Java_15_형 변환 Type Casting  (0) 2023.09.15
Java_14_자료형, 변수, 상수, 오버플로우, 언더플로우  (0) 2023.09.15
Java_13_기본 형식  (0) 2023.09.14