JAVA 기초 (30) Wrapper클래스, int형 다른 자료형으로 변환, 문자열 변환

코린이서현이·2023년 8월 7일
0

Java

목록 보기
31/46

🙂들어가면서🙂

자바에는 기본형이 있지만 이 기본형을 객체로 사용해야하는 상황이 있다.
예를 들어서 매개변수가 객체향이거나 반환값이 객체형일때!!
이럴때를 위한 기본 자료향을 위한 클래스 Wrapper가 존재한다.

➕ 저장공간

원시형 👉 스택메모리에 저장된다.
참조타입(class,Arrat..) 👉 힙메모리에 저장된다.
static 👉 스택메모리에 저장된다.

📕 Wrapper클래스

  • 원시형타입의 자료형을 Class화 한다.
  • 저장되는 인스턴스의 값을 변경할 수 없다.
원천타입Wrapper Class
intInteger
byteByte
charCharcter
doubleDouble
floatFloat
longLong
shortShort

📖 Wrapper 생성 방법

  1. new
    새로운 객체 생성
  2. .value() : 추천👍
    정적메소드로 생성자를 사용하지 않고 바로 반환할 수 있다.
    또한 이미 생성한 객체가 있으면 그 객체를 재활용한다.
  3. 오토박싱을 이용한 생성
	//1. 새로운 객체 생성
	Integer integer_1 = new Integer(100);
    //2. 이미 있는 객체 활용 
    Integer integer_2 = Integer.valueOf(100);
    //오토박싱 이용: 비추 👎
    Integer integer_3 = 100;

    if (integer_1 == integer_2){
    	System.out.println("true");
    }else {
        System.out.println("false");
    }

    if (integer_1 == integer_3){
       System.out.println("true");
    }else {
       System.out.println("false");
    }

    if (integer_2 == integer_3){
    	System.out.println("true");
    }else {
    	System.out.println("false");
    }

📖 오토박싱 & 오토언박싱

📒 Boxing

기본 타입의 값을 wrapper class의 객체로 만드는 과정
wrapper class의 생성자 파라미터값으로 기본타입의 값 또는
문자열을 넘겨주면 된다.

📒 Unboxing

wrapper class에서 기본 타입의 값을 얻어내는 과정
각 wrapper class마다 가지고 있는 "기본타입명 + Value()" 메소드를 호출하면 된다.

📒 오토박싱, 오토언박싱

기본 자료형과 Wrapper 클래스 간에는 서로 암묵적 형변환이 가능하다.
오토박싱 : 기본형을 객체형으로 바꾸는 것
오토언박싱 : 객체를 기본형으로 바꾸는 것

📖 Wrapper Class 를 사용하는 이유

📒 형변환

문자열을 원하는 자료형으로 변환시키는 기능이다.
Wrapper클래스.parse+원시형(문자열)
정적메소드로 인스턴스를 생성하지 않고 사용이 가능하다.

String string = "12345";

int num = Integer.parseInt(string);

➕ 다른 자료형을 문자열로 바꾸는 것은 .toString이다.

📒 비교연산

Wrapper 클래스의 비교는 인스턴스 주소값을 비교하는==이 아닌 실제 객체 값을 비교하는eqauls를 사용해야한다.
Wrapper 클래스들은 모두 equals()가 오버라이딩되어 있어서 주소값이 아닌 객체가
가지고 있는 값을 비교할 수 있다.

📖 Integer 메소드

public class Integer_ {
      public static void main(String[] args) {
            //String to Int
            String str = "123";
            int num = Integer.parseInt(str);
            //int to String
            int num1 = 123;
            String str1 = Integer.toString(num1);
            
            //10진수 ->2진수
            String str2 = Integer.toBinaryString(num);
            System.out.println("2진수: "+str2);
            
            //10진수->8진수
            String str3 = Integer.toOctalString(num);
            System.out.println("8진수: "+str3);
            
            //10진수->16진수
            String str4 = Integer.toHexString(num);
            System.out.println("8진수: "+str4);
            
            //2진수->10진수
            int temp = Integer.parseInt(str2, 2);
            System.out.println("2진수->10진수: "+temp);
            
            //8진수->10진수
            System.out.println("8진수->10진수: "+Integer.parseInt(str3, 8));
            
            //둘 중 큰 수 반환 (min도 가능)
            System.out.println("더 큰 수 : "+ Integer.max(3, 5));
            
            //2진수의 1 개수
            System.out.println("2진수의 1 개수 : "+ Integer.bitCount(num1));
            
            
      }
}

🙂마무리하면서🙂

내일도 화이팅!
profile
24년도까지 프로젝트 두개를 마치고 25년에는 개발 팀장을 할 수 있는 실력이 되자!

0개의 댓글