2013년 10월 17일 목요일

자바 상수객체, Java Constant Object [자바 상수 객체, Java Constant Object] 상수 객체란

자바 상수객체, Java Constant Object

[자바 상수 객체, Java Constant Object]
 
상수 객체란 final변수와 같이 객체의 내용을 변경 할수 없는 객체를 말한다.
 
객체의 내용을 외부에서 수정하지 못하게 하기 위해서는 인스턴스 변수는 모두 final로 선언하거나, private으로 선언한다.
 
인스턴스 변수를 수정하는 메쏘드는 외부에서 접근하지 못하게 private으로 선언
예) String, Integer 등은 그 내용을 수정 할 수 없도록 위와 같이 만들어져 있다.
 
final로 선언된 변수가 참조형 일 경우에는 그 변수의 참조 값을 바꿀 수는 없으나 그 변수가 참조하고 있는 객체나 배열의 내용은 수정 가능하다.

[예제, ConstObjectTest.java]
 
package onj;
class ConstClass
{
    final int v1;
    private int v2;
    
    ConstClass( int value1, int value2 )
    {
        v1 = value1;
        v2 = value2;
    }
    int getV2()
    {
        return v2;
    }
}
class NonConstClass
{
    int v=999;
}
class ConstObjectTest
{
    public static void main( String[] args )
    {
        ConstClass obj = new ConstClass(1, 2);
        
        System.out.println( "obj.v1 = " + obj.v1 );
        System.out.println( "obj.getV2() = " + obj.getV2() );
        // obj.v1 = 3;  // 오류: 화이널 변수이므로 대입 불가
        // obj.v2 = 4;  // 오류: private 변수이므로 접근 불가
        final NonConstClass obj2 = new NonConstClass();
        // obj2 = new NonConstClass(); // 오류: 화이널 참조 변수이므로 수정 불가
     // 화이널 참조값을 통하여 객체의 내용 수정 가능하다,
        obj2.v = 3;            
    }
}
 
[결과]
 
obj.v1 = 1
obj.getV2() = 2



오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터
(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)  


    댓글 없음:

    댓글 쓰기