Code Archive/JAVA

Step10. Wrapper class, Nested(inner) class

쌍큐 2014. 9. 12. 14:09


*Wrapper class 계열*

기본형 데이터 타입을 참조형으로 변경하고자 할 때 사용

ex) int -> Integer , boolean -> Boolean ......

jdk1.4 이하에서 반드시 사용해야 한다.



//1.4 이하에서는 컴파일 에러, 이유는 Object 는 참조형 데이터 타입이고

// 1 은 기본형 데이터 타입이므로..

Object o=1;//1.5 이상에서는 자동으로 Wrapper 객체로 변환 

System.out.println(o.getClass());// Integer 객체

// 1.4 이하에서 코딩한다면

Object o1=new Integer(1); // int 에 대응되는 Integer 객체로 생성

int i=((Integer)o1).intValue();// Integer로 캐스팅하여 intValue() 로 int 타입을 리턴

System.out.println(i);



*Nested(중첩) class*

Inner class 로도 표현된다. 즉 클래스 안에 클래스가 선언되는 형태

Inner class 는 Outer 의 private 멤버에 직접 접근이 가능하다.

Inner class의 객체를 생성하기 위해서는 Outer class의 객체 생성을 전제로 한다.



class Outer{

// private 은 다른 클래스에서 접근할 수 없다. (단 Inner class는 제외)

private String pass="java";

//Inner class

class Inner{

public void inTest(){

// Outer class의 private member 에 접근 가능

System.out.println(pass);

pass=pass.concat("king");

}

}

public String getPass() {

return pass;

}

public void setPass(String pass) {

this.pass = pass;

}

}

public class TestNested {

public static void main(String[] args) {

Outer out=new Outer();

//Inner class의 객체를 생성하기 위해서는 Outer class의 객체 필요하다

Outer.Inner in=out.new Inner();

in.inTest();

System.out.println(out.getPass());

}

}