[혼공자] 5주차 과제

나봉·2025년 2월 16일
0

13기 혼공자

목록 보기
12/14

5주차 (02.10 ~ 02.16) / chapter08~09

1. 기본 숙제

  • 인터페이스 : 객체의 사용 방법을 정의한 타입

인터페이스 선언

  • interface 키워드를 사용

인터페이스 선언 예시

public interface RemoteControl {
}
  • 인터페이스는 데이터를 저장할 수 없기 때문에 인스턴스, 정적 필드 선언 x,

  • 상수 필드는 선언 가능(인터페이스에 고정된 값으로 실행 시 데이터 바꿀 수 x)
    => 인터페이스에 선언된 필드는 public static final 특성을 갖음

public interface RemoteControl {
	// 상수
	int MAX_VALUME = 10; // 앞 부분에 public static final 생략 가능 
	int MIN_VALUME = 0;
}
  • 추상 메서드 선언(인터페이스로 호출된 메서드는 객체에서 실행되므로 추상 메서드 선언)
    => public abstract 생략 가능
public interface RemoteControl {
	// 상수
	int MAX_VALUME = 10; // 앞 부분에 public static final 생략 가능 
	int MIN_VALUME = 0;
	
	// 추상 메서드 - 메서드 선언부만 작성
	void trunOn();
	void trunOff();
	void setVolume(int volume);
}
  • 다중 구현이 가능

  • 인터페이스를 사용하기 위해 구현클래스에서 implements 키워드를 추가하여 인터페이스 이름을 명시
    => 구현클래스에서 인터페이스에 선언된 추상메서드의 실체메서드를 작성

  • 인터페이스 사용
    =>클래스 선언 시 인터페이스는 필드, 생성자, 메서드의 매개변수, 생성자 또는 메서드의 로컬변수로 선언 가능

	public class MyClass{
    	// 필드
        RemoteControl rc = new Television();
        
        // 생성자
        MyClass(RemoteControl rc) { // 생성자의 매개값으로 구현 객체 대입
        	this.rc = rc;
        }
        
        // 메서드
        void methodA() {
        	RemoteControl rc = new Audio(); // 메서드의 로컬변수
        }
        
        void methodB(RemoteControl rc) { // 메서드의 매개변수
        
        }
    }

2. 추가 숙제

[문제풀이]
Car 클래스 안에 멤버클래스인 Tire 클래스와 정적 멤버클래스인 Engine 클래스가 선언되어 있다.

Car 클래스 외부에서 Tire 클래스(멤버 클래스)의 객체를 생성 하려면 Car 클래스의 객체를 생성하고 난 후 Tire 객체를 생성할 수 있다.

	Car myCar = new Car();
		
    Car.Tire tire = myCar.new Tire();

Car 클래스 외부에서 Engine 클래스(정적 멤버 클래스)의 객체를 생성 하려면 Car 클래스의 객체를 생성하지 않고 바로 Engine 객체를 생성할 수 있다.

	Car.Engine engine = new Car.Engine();

0개의 댓글

관련 채용 정보