DAY08(3) - Wrapper class

은나현·2023년 2월 1일
0

📌 1. Wrapper class

📍 1-1. Wrapper class란

  • java는 데이터를 관리하기 위하여 기본 데이터 타입을 지원하지만, 클래스를 통해서 만들어진 객체를 통한 데이터 관리도 가능하다.
  • 어떤 상황에서는 기본 데이터 타입의 변수를 객체 형태로 사용해야 하는 경우가 있는데, 이 때 기본형 타입을 객체로 포장할 필요가 있다.
    • 포장 클래스(Wrapper Class)는 특정 기본형 타입을 나타내는 용도로 사용된다.
    • Integer, Character를 제외하면 모두 기본형의 맨 앞글자를 대문자로 표기한 형식이다.
      • 기본형Wrapper Class기본형Wrapper Class
        byteBytefloatFloat
        shortShortdoubleDouble
        intIntegercharCharacter
        longLongbooleanBoolean
  • 최근의 java언어는 Wrapper 클래스와 기본 자료형을 구분하지 않고 사용한다.
    • 초창기 java 언어는 기본 자료형의 연산보다도 Wrapper Class를 사용한 연산이 더 많이 이루어졌으나, java언어가 발전함에 따라서 기본 자료형과 Wrapper 클래스 간의 연산에 차이가 없어졌다.

📍 1-2. Wrapper 클래스의 객체 만들기

  • 각각의 Wrapper 클래스의 객체는 자신과 대응되는 기본 자료형의 데이터를 파라미터로 전달받는다.

    	int num = 1; 
    	Integer wrapper = new Integer( num );	
  • 기본 자료형과 wrapper클래스 간에는 서로 암묵적 형변환이 가능하다.

    	int num = 100;
    	Integer wrapper = num;
    	------------------------------------------------
    	Integer wrapper = new Integer(100);
    	int num = wrapper;

    ➕ Wrapper 클래스의 static 데이터

    • 모든 Wrapper 클래스는 static 데이터 형태로 Wrapper 클래스에 대응하는 자료형에 대한 최소값과 최대값을 가지고 있다.

      int max = Integer.MAX_VALUE;
      int min = Integer.MIN-VALUE;

📍 1-3. Wrapper 클래스를 사용한 문자열 데이터의 형변환

  • 자바에서 1과 "1"은 다르다.

    • 기본 자료형과 문자열 데이터간의 연산에서는 기본 자료형 데이터가 문자열로 변환된 후, 문자열 간의 연산으로 처리된다.
    	int a = 1;
    	String b = "1";
    	System.out.println(a + b);	// 출력결과 11
    • 모든 프로그램 플랫폼에서 사용자의 입력값은 String으로 처리된다.
      만약에 인터넷 뱅킹에서 2개의 계좌로 송금할 금액을 각각 입력하였을 때, 총 금액을 계산한다면 다음과 같이 처리될 것이다.
    	String money1 = "3000";
    	String money2 = "5000";
    	String total = money1 + money2; 	// 출력결과 30005000
  • 위와 같은 경우에 문자열 데이터를 기본 데이터형으로 변환해 줄 필요가 있다.
    Wrapper 클래스에는 기본 자료형의 모양을 띄고 있는 문자열 데이터를 실제 기본 자료형으로 변환시키는 기능이 포함되어 있다. 이는 Wrapper 클래스를 사용하는 가장 큰 의미이다.

    	String money1 = "3000";
    	String money2 = "5000";
    	int m1 = Integer.parseInt(money1);
    	int m2 = Integer.parseInt(money2);
    	System.out.println(m1 + m2); 	// 출력결과 8000
    • 위 코드에서는 Integer.parseInt()가 사용되었다. 변환하려는 데이터 타입에 따라 다양한 다른 parse 기능이 존재한다.

      Float.parseFloat()
      Double.parseDouble()
      Long.parseDouble()
      ...

0개의 댓글