Wrapper Class

전영덕·2023년 2월 1일
0

Java Study

목록 보기
28/36

1. Wrapper Class

  • java는 데이터를 관리하기 위하여 기본 데이터 타입을 지원하지만, 클래스를 통해서 만들어진 객체를 통해 데이터 관리도 가능하다.

  • 어떤 상황에서는 기본 데이터 타입의 변수를 객체 형태로 사용해야 하는 경우가 있는데, 이 때 기본형 타입을 객체로 포장할 필요가 있다.

  • 포장 클래스(Wrapper Class)는 특정 기본형 타입을 나타내는 용도로 사용된다.(Shoft가 아니라 Short로 오타이다)

  • int - Integer 를 가장 많이 사용한다.

2. Wrapper Class의 의미

  • 초창기 java언어는 기본 자료형의 연산보다도 Wrapper class를 사용한 연산이 더 많이 이루어 졌으나, 자바 언어가 발전함에 따라서 기본 자료형과 Wrapper클래스 간의 연산에 차이가 없어졌다.
  • 최근의 java언어는 Wrapper클래스와 기본 자료형을 구분하지 않고 사용한다.

3. Wrapper클래스의 객체 만들기

  • 각각의 wrapper클래스의 객체는 자신과 대응되는 기본 자료형의 데이터를 파라미터로 전달받는다.
    int num =1;
    Integer wrapper = new Integer(num);

4, Wrapper클래스의 형변환

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

5. Wrapper clsss 의 static 데이터

  • 모든 Wrapper 클래스는 static 데이터 형태로 wrapper 클래스에 대응하는 자료형에 대한 최소값과 최대값을 가지고 있다.
	int max = Integer.MAX_VALUE;
	int min = Integer.MIN_VALUE;

6. 문자열 데이터의 형변환(중요!! 나중에 JSP 때도 적용됨)

  • 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 이 출력됨. 근데 그러면 안되자나?
  • 문자열 데이터의 형변환 : 문자열 데이터를 기본 데이터형으로 변환하기
    "true" 라던가 "5000"을 기본 자료형으로 바꾸고 싶은 경우 사용한다. Wrapper클래스에는 기본 자료형의 모양을 띄고 있는 문자열 데이터를 실제 기본 자료형으로 변환시키는 기능이 포함되어 있다. Wrapper클래스를 사용하는 가장 큰 의미이다.
	String money1 = "3000";
	String money2 = "5000";
	int m1 = Integer.parseInt(money1)
	int m2 = Integer.parseInt(money2)

	System.out.println(m1 + m2);   // 8000 
    
  • parse 뜻 : (문장을 문법적으로) 분석하다. 프로그램에서는 주로 다른 언어로 작성된 문서를 디코딩 한다는 뜻이다. 디코딩의 뜻은 변형된 부호를 다시 원래 상태로 되돌리는 것을 뜻한다. 즉, 원래의 타입으로 되돌린다.
    (Shoft가 아니라 Short로 오타이다)
public class Main01 {

	public static void main(String[] args) {

		String a = "20";
		String b = "3.14";

		// 문자열을 실제 데이터형으로 변환하는 기능이다.
		int num_a = Integer.parseInt(a);
		float num_b = Float.parseFloat(b);

		int v1 = num_a + 100;
		float v2 = num_b + 10;

		System.out.println("v1 : " + v1);
		System.out.println("v2 : " + v2);

		// 기본 데이터형의 객체화
		// deprecated
		Integer i = new Integer(100);
		System.out.println(i);
	}

}

0개의 댓글