Daily coding

Java Basic : day 4 - 래퍼 클래스(Wrapper Class) 본문

Language/Java_basic

Java Basic : day 4 - 래퍼 클래스(Wrapper Class)

sunnnkim 2019. 11. 22. 18:33

Wrapper Class

일반 자료형을 사용하기 쉽게 클래스화 한 것
           
/
    일반자료형    Wrapper Class
       boolean           Boolean
       char               Character
       
       byte                 Byte
       short                Short
       int                   Integer ------------------------ 중요
       long                 Long
       
       float                 Float
       double             Double ------------------------ 중요

       char[]               String ------------------------ 중요
      length               length()-메소드
                              toString()
     

valueOf() : number -> String
Static Method : 래퍼 클래스에 직접 접근하는 메소드 - String.valueOf
 
 
Character ch1; // 인스턴스 생성
ch1 = new Character('A'); // 값을 넣는 방법 1
ch1 = 'B'; // 값을 넣는 방법 2
System.out.println("ch1 = " + ch1);

Character ch2 = new Character('B');

// 캐릭터 타입끼리 더할 때는 아래의 두가지 방법으로 캐릭터 타입을 스트링으로 바꿔줘야 한다.
// String str = ch1 + ch2 ; ----> 오류나는 코드 
String str = ch1.toString() + ch2.toString(); //char 타입에 toString() 붙여주기
str = ch1 + ch2 + "" ; // 뒤쪽에 "" 붙이면 아스키 코드로 바꿔주고  +로 두 값을 더해줌
System.out.println(str); //132 출력
str = "" + ch1 + ch2; // 앞쪽에 "" 더해주면 문자열로 바꿔주고 +로 두 값을 붙여줌
System.out.println(str);

// == 비교는 주소값 비교함
if(ch1 == ch2) {
           System.out.println("ch1, ch2 같은 문자열");
}
else {
           System.out.println("ch1, ch2 다른 문자열");
}
// equals()  
if(ch1.equals(ch2)) {
           System.out.println("ch1, ch2 같은 문자열");
}
else {
           System.out.println("ch1, ch2 다른 문자열");
}



// Integer
// = int

int i = 25;
Integer iObj;
// iObj = new Integer(1); 
// 원래는 이렇게 정의해야함
iObj = 36;
// 위의 코드처럼 값을 할당해도 자바에서 자동으로 new로 인스턴스 생성해서 값을 넣어준다

// 숫자 -> 문자열 String.valueOf(1)
// String is = iObj.toString(); // toString 메소드 사용해도 되지만
String is = iObj + ""; // 이렇게 쓰는 것이 더 간단하게 스트링으로 바꿔줄 수 있다.
System.out.println("is = " + is);

// 문자열 -> 정수(int)
String str1 = "123";
int num1 = Integer.parseInt(str1);
// Integer.parseInt(String data)
// String 으로 할당된 숫자 문자열 데이터를 parsing(변환)해줌
num1 = num1 +5;
// int형으로 변환된 str1이  num1에 담겼기 때문에 연산 가능함
System.out.println("num 1 + 5 = " + num1);

// 문자열 -> 실수(Double)
String str2 = "234.567";
Double d1 = Double.parseDouble(str2);
System.out.println("double : " + d1);



// Wrapper Class 이용해서 진수 변환하기
// 10진수 -> 2진수, 16진수
// 10진수는 int 형
// 2진수, 16진수는 String


int number = 132;
String num2str;

// 10진수 -> 2진수
// Integer.toBinaryString 사용
num2str = Integer.toBinaryString(number);
System.out.println("10진수를 2진수로 표현 : " + number + " -> "+ num2str);

// 2진수 -> 10진수
// Integer.parseInt(파싱할 데이터, 파싱할 데이터가 현재 몇진수로 표현됐는지)
int num2to10 = Integer.parseInt(num2str, 2);
System.out.println("2진수를 10진수로 표현 : " + num2str + " -> "+ num2to10);


// 10진수 -> 16진수
// Integer.toHexString()
String num16str= Integer.toHexString(num2to10);
System.out.println("10진수를 16진수로 표현 : " + num2to10 + " -> "+num16str);


// 16진수 -> 10진수
// Integer.parseInt(파싱할 데이터, 파싱할 데이터가 현재 몇진수로 표현됐는지)
int num16to10 = Integer.parseInt(num16str,16);
System.out.println("16진수를 10진수로 표현 : " + num16str + " -> "+num16to10);