[ITWILL : JSP]Wrapper클래스, 오토 박싱과 오토 언박싱, hierarchy확인법

ITWILL학원 : 26강 JSP기초 BY 정규태강사

1. Wrapper클래스

  • 자바에서는 모든 것을 담을 수 있는 Object가 있다. Object로 배열을 만들면 다양한 종류의 객체들을 담을 수 있게된다. 단 기본형은 제외된다. WHY? 기본형데이터타입은 Object를 상속받지 않기때문! 이때 기본형 데이터를 wap해서 객체로 만들어 주는 것이 Wapper클래스이다.
  • 기본형 데이터를 객체로 사용할 수 있도록 만든 클래스
  • 기본형 데이터의 본질은 그대로두고, 해당 인터페이스만 제공하는 클래스이다.
  • 자바는 대소문자를 구분하기때문에 아래 두 형태는 서로 다른 값이다.
  • 기본형데이터타입은 상속이 불가능하다. why? 객체가 아니니까. 상속은 객체간의 관계를 표현하는 것.
기본형데이터타입 Wrapper클래스(참조형데이터타입)
byte Byte
short Short
int Integer
float Float
double Double
boolean Boolean
char Character

2. 오토 박싱과 오토 언박싱

기본적인 박싱과 언박싱이 있던 개념이지만 JDK6이후로 오토박싱과 오토언박싱이 가능해졌음
이건 새로운 개념이며 형변환개념과 다르다.

  • 박싱 : 값 형식의 데이터(기본형데이터타입)를 참조형데이터타입인 Wrapper클래스로 변환하는 것

    • 메모리상에서 stack에 있는 값을 heap에 전달함.
  • 언박싱 : Wrapper클래스를 기본형데이터타입으로 변환하는 것

    • heap에 있는 값을 stack에 전달함.
  • 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int num01 = 100;
int num02; //래퍼런스만 준비

Integer inum01 = new Integer(200); //인티져는 객체이기때문에 생성해줘야함
Integer inum02; //래퍼런스만 준비

//JDK1.6이전
inum02 = new Integer(num01); //박싱 : 직접 객체안에 담아야함
num02 = inum01.intValue(); //언박싱

System.out.printf("박싱 : %d, 언박싱 : %d%n", inum02, num02);

//JDK1.6이후
inum02 = num01; //오토박싱
num02 = inum01; //오토언박싱
System.out.printf("박싱 : %d, 언박싱 : %d%n", inum02, num02);

3. inner 클래스

접근제어자(Access Modifier) public

  • 누구나 접근 가능하다
  • public클래스는 main메서드를 포함하고 있는 클래스이다.
  • 하나의 파일에 하나의 public클래스만 있어야한다.

진짜 딱 하나만 사용가능할까?

  • inner 클래스에서 public클래스 추가 생성이 가능하다
1
2
3
4
5
class a{
public class b{ //이너클래스

}
}

4. 클래스명에서 키보드 f3, f4를 누르면

클래스명에서 아래 키보드를 누르면 상속관계(hierarchy)를 확인할 수 있다.

  • f3 : 어떤 클래스나 인터페이스를 상속받는 지 알수있음.
  • f4 : 계층도를 나타냄.

Comments