<this>

 

 

 

- 변수를 정의하고, 생성자를 만든다.

 

 

 

- 생성자를 호출한다.

 

 

 

- new로 heap 영역이 생기면서 해당영역에 class가 띄어진다.

 

 

 

- AirPlane의 Stack 영역이 실행된다.

 

- 실행 후 값이 사라지면 안되기 때문에 this에 저장한다.

 

- 생성자는 최초의 객체가 생성될 때 만들고, 그 후에 변화가 있을 때는 this를 사용한다.

 

 

<행동 - 책임>

 

 

package ch04;

class Rabbit { //heap변수, 전역변수, 맴버변수, 필드, 속성, 프로퍼티
	private String name;
	private int power;

	public Rabbit(String name, int power) {
		super();
		this.name = name;
		this.power = power;
	}

	// 행동(책임)
	boolean drink() {
		// 100이 넘어가면 동작하지 않도록!!
		if (power == 100) {
			return false;
		}
		power++;
		return true;
	}

	public int getPower() {
		return power;
	}

	void setName(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}

}

public class RabbitApp {

	public static void main(String[] args) {
		Rabbit r1 = new Rabbit("토끼", 20); // 100이 맥스
		while (r1.drink()) {
		}
		System.out.println(r1.getPower());
		
		// 이름 변경 
		r1.setName("산토끼");
		System.out.println(r1.getName());
	}

}

 

- public은 프로젝트 내 모든 패키지에서 접근이 가능하나, 

private을 선언할 경우 클래스 내부에서는 접근 가능하지만 다른 클래스에서는 접근이 불가능하다.

 

 

 

openclose