본문 바로가기
Programming/JAVA(eclipse)

java 11일차 _ 01. 유틸리티 클래스( wrapper 클래스 )

by yoon9i 2024. 3. 22.

3) wrapper 클래스
개념: 기본형 8개에 해당하는 참조형인 클래스를 묶어서 부르는 이름이다.

기본형 참조형 ( 클래스 )
-------------- --------------
byte Byte
short Short
int Integer
long Long

float Float
double  Double

char Character

boolean  Boolean

제공이유: wrapper 클래스내의 상수 및 메서드의 도움을 받을 수 있다.
특징: 
거의 대부분의 멤버가 static 으로 되어있다. 
( new 없이 매우 손쉽게 사용할 수가 있다. )

추가개념: 오토박싱( auto boxing ), 오토언박싱 ( auto unboxing )

package exam19_Util;

public class Util03_wrapperTest {

	public static void main(String[] args) {

		// 1. 상수의 도움 예
		System.out.println("Byte: "+ Byte.MIN_VALUE+" ~ " + Byte.MAX_VALUE);
		System.out.println("Short: "+ Short.MIN_VALUE+" ~ " + Short.MAX_VALUE);
		System.out.println("Integer: "+ Integer.MIN_VALUE+" ~ " + Integer.MAX_VALUE);
		System.out.println("Long: "+ Long.MIN_VALUE+" ~ " + Long.MAX_VALUE);
		/*
		 * Byte: -128 ~ 127
		   Short: -32768 ~ 32767
           Integer: -2147483648 ~ 2147483647
           Long: -9223372036854775808 ~ 9223372036854775807
		 */
		
		// 2. 메서드 도움 예
		// "10" ---> 10
		int n = Integer.parseInt("10");
		
		// "3.14" ---> 3.14
		float f = Float.parseFloat("3.14");
		
		// 10 과 20 중 최대값 반환 또는 최소값 반환 또는 합
		System.out.println(Integer.max(10, 20)); // 20
		System.out.println(Integer.min(10, 20)); // 10
		System.out.println(Integer.sum(10, 20)); // 30
		
		// 대소문자냐? 
		char c = 'A';
		System.out.println(Character.isUpperCase(c)); // 대문자냐? true
		System.out.println(Character.isLowerCase(c)); // 소문자냐? false
		
		// 문자냐?
		char c2 = 'A';
		char c3 = '1';
		System.out.println(Character.isLetter(c2)); // true
		System.out.println(Character.isLetter(c3)); // false
		
		// 숫자냐?
		System.out.println(Character.isDigit(c2)); // false
		System.out.println(Character.isDigit(c3)); // true
		
		// 공백이냐?
		char c4 = ' ';
		System.out.println(Character.isWhitespace(c4)); // true
		
		// '1' ---> 1, "1" ---> 1
		int k = Character.getNumericValue('1');
		System.out.println(k+1); // 2
	}

}

 

* auto boxing (오토박싱) & auto unboxing (오토언박싱)

package exam19_Util;

public class Util03_wrapperTest2_autoboxing_unboxing {

	public static void main(String[] args) {

		// 과거: 기본형과 참조형을 분리해서 사용
		// 기본형으로 정수 10 만드는 방법
		int n = 10;
		
		// 참조형으로 정수 10 만드는 방법
		Integer n2 = new Integer(10); // 현재는 deprecated 되어서 권장하지 않는방법
		
		// 참조형을 기본형으로 저장
		int n3 = n2.intValue();
		
		////////////////////////////////////////////////////
		
		// 현재: 기본형과 참조형을 구분하지 않고 사용. 자동으로 서로간에 변경되도록 지원
		// 오토박싱: 기본형 ----> 참조형
		int x = 10;
		Integer x2 = x;
		
		// 오토언박싱: 참조형 ----> 기본형
		int x3 = x2;
		
		// 다형성을 적용한 Object 배열
		// Object [] obj = { new Integer(10) };   
		// auto boxing ↓
		Object [] obj = { 10, 3.14, "hello" };
	}

}