자바기초

(개인 공부) 자바 클래스와 객체 서술

yb12 2020. 5. 2. 14:06

class Main {

    public static void main(String[] args) {

        게임.작동하다();

    }

}

 

class 게임 {

    static void 작동하다() 

        무기 a무기;

        a무기 = new 무기();

    }

}

 

class 무기 {

    void 공격() { }

}

 

무기 a무기; 설명

무기 리모컨만 들어갈 수 있는 변수 a무기를 선언

a무기에는 현재 쓰레기 리모컨이 들어있다.

리모컨에는 공격이라는 버튼이 1개 있다.

a무기는 작동하다() 함수가 시작되면 만들어진다.

a무기는 작동하다() 함수가 종료되면 사라진다.

a무기에 무기 리모컨이 아닌 다른 리모콘이 들어가려 하면 자동으로 무기 리모컨화 되어 들어간다.

만약 무기 리모콘화 하는데 안전하지 않을 가능성이 조금이라도 있으면 오류가 발생한다.

 

a무기 = new 무기(); 설명

무기 객체를 생성한다.

무기 객체는 자기 자신을 조종할 수 있는 리모컨을 가지고 태어난다.

무기 객체는 그 리모콘을 복사하여 a무기에 돌려준다.

기존에 있던 쓰레기 리모컨이 제대로 작동하는 리모컨으로 대체된다.

객체는 a무기에 있는 것이 아니고 다른 지역(힙)에 만들어진다.

무기 객체의 수명을 작동하다() 함수의 종료와 상관없이 계속 살아간다.

하지만 객체 자신을 가리키는 리모컨의 수가 0이 되면 힙 내부에 돌아다니는 가비지 컬렉터에 의해 언젠가 제거된다.