더북(TheBook)

정답

String name;
int number;
or
public String name;
public int number;
or
protected String name;
protected int number;

 

해설

접근 제한자는 public, protected, private, 생략(default) 이렇게 네 가지입니다. private은 자기 자신만 접근할 수 있는 접근 제한자로 Car 클래스의 private한 요소들은 Car 클래스에서만 사용 가능합니다. CarExamCar와 다른 클래스이므로 접근하려는 요소가 private이면 접근할 수 없는 것입니다. 접근 제한자를 생략하면 같은 패키지에 존재하는 객체는 접근할 수 있습니다. protected는 패키지가 같을 때는 물론이고, 패키지가 다르다 하더라도 두 객체 사이가 상속 관계라면 접근할 수 있습니다. public은 어떤 클래스든 모두 접근할 수 있습니다. 그러므로 Car 클래스와 CarExam 클래스가 같은 패키지에 있다고 가정하면 접근 제한자를 생략한 package 영역, public, protected 세 가지 접근 제한자가 모두 가능합니다.

 

 

문제 2 접근 제한자는 필드와 마찬가지로 메서드에도 적용할 수 있습니다. CarExam 클래스가 실행되도록 수정해보세요.

package javaStudy;
public class Car{
    public void run() {
        System.out.println("차가 달립니다.");
    }
    private void stop() {
        System.out.println("차가 멈춥니다.");
    }
}
package javaStudy;
public class CarExam{
    public static void main(String[]args) {
        Car car = new Car();
        car.run();
        car.stop();
    }
}

 

실행결과

차가 달립니다.
차가 멈춥니다.

 

정답

public void stop() {
    System.out.println("차가 멈춥니다."); 
}

 

해설

private한 접근 제한자는 자기 클래스 내에서만 사용할 수 있으므로 외부에서 stop 메서드를 사용할 수 있도록 stop 메서드의 접근 제한자를 수정합니다. 두 클래스가 같은 패키지인지 아닌지 등의 구체적인 상황에 따라서 알맞은 접근 제한자로 수정하면 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.