1.아래가 컴파일 되도록 하시오.
TV tv = new TV(10,"blue");
TV tv2 = new TV(20,"blue");
System.out.println(tv.getSize() + "인치 입니다");
System.out.println(tv.getColor() + "색 입니다");
tv.show(); // 10 인치 bule 색 입니다.
tv.compareSize(tv); // 내가 작습니다.
tv2.compareSize(tv); // 내가 큽니다.
class TV {
int size;
String color;
TV(int size, String color) {
this.size = size;
this.color = color;
}
int getSize() {
return size;
}
String getColor() {
return color;
}
void show() {
System.out.println(this.size + "인치 " + this.color + "색 입니다.");
}
void compareSize(TV check) {
if(this.size > check.size) {
System.out.println("내가 큽니다.");
}
else if(this.size < check.size) {
System.out.println("내가 작습니다.");
}
else {
System.out.println("나랑 똑같습니다.");
}
}
}
2.this 생성자에 대하여 설명하시오.
- 인스턴스가 바로 자기 자신을 참조하는 데 사용하는 변수
이러한 this 참조 변수는 해당 인스턴스의 주소를 가리키고 있다.
3.this의 용도는?
- 클래스 안에 함수 생성시 파라미터에 선언하는 변수명과 클래스에 선언된 변수명을 똑같이 하고, this를 사용해서 같은 변수명 중 인스턴스 자기 자신을 참조하는 데 사용
4.정보은닉에 대하여 예습하시오.
- 객체 지향에서 정보 은닉(data hiding)이란,
사용자가 굳이 알 필요가 없는 정보는 사용자로부터 숨겨야 한다는 개념
그렇게 함으로써 사용자는 언제나 최소한의 정보만으로 프로그램을 손쉽게 사용할 수 있게 됨
1. private
- 외부에 공개되지 않으며, 외부에서는 직접 접근할 수 없다.
2. public
- 외부로 공개되며, 해당 객체를 사용하는 프로그램 어디에서나 직접 접근할 수 있다.
3. default
- 접근 제어의 기본값으로 default 접근 제어를 별도로 명시하고 있다.
4. protected
- 부모 클래스에 대해서는 public 멤버처럼 취급되며, 외부에서는 private 멤버처럼 취급된다.
5. 1번에서 tv.compareSize(tv); 에 대하여, 메모리 그림을 그리시오.