2013년 9월 28일 토요일

[자바교육강좌,자바객체]자바 객체 생성과정(Java Object New) New 수식에 의해 객체의 메모리가 할당 되고 객체내의 ..

[자바교육강좌,자바객체]자바 객체 생성과정(Java Object New)
 
New 수식에 의해 객체의 메모리가 할당 되고 객체내의 모든 인스턴스 변수는 default 초기치(0, ‘\u0000’,false, null)로 초기화 된다
 
생성자가 호출되어 다음 순서대로 실행된다.

- 생성자 몸체의 처음 문장이 this(…)일 경우엔 해당 생성자를 호출하고 아닐 경우 상위 클래스의 생성자를 호출 후 인스턴스 변수의 초기화 수식(변수명 = 수식;)과 초기화 블록이 실행된다.
- 생성자의 나머지 몸체가 실행된다.

[예제]
 
아래 예제에서 new Circle2() 이후 실행 순서를 잘 알아두자.
 
 
package onj;
 
class Circle
{
    private double radius;
   
    //Circle의 생성자
    public Circle(double radius) {
        this.radius = radius;
        System.out.println("Circle(double radius): radius = " + this.radius);
    }
}
class Circle2
{
 //아래 초기화 수식은 인스턴스 초기화 블록보다  먼저 실행
    private Circle inner = new Circle(10); // 초기화 수식 (1)
    private Circle outer;
    //인스턴스 초기화 블록
    {
        outer = new Circle(20);  // 초기화 블록(2)
    }
    public Circle2() {  // 생성자(3)
        System.out.println( "Circle2() 생성자" );
    }
    public static void main(String args[]) {
        new Circle2();
    }
}
 
 
[결과]
 
Circle(double radius): radius = 10.0
Circle(double radius): radius = 20.0
Circle2() 생성자

댓글 없음:

댓글 쓰기