모두CBT

다음 자바 코드를 컴파일할 때, 문법 오류가 발생하는 부분은?class… | [9급 지방직 컴퓨터일반] 16년 1회차 기출문제 상세 페이지

1[9급 지방직 컴퓨터일반] 16년 1회차
다음 자바 코드를 컴파일할 때, 문법 오류가 발생하는 부분은?
class Person {
private String name;
public int age;
public void setAge(int age) {
this.age = age;
}
public String toString() {
return("name: " + this.name + ", age : " + this.age);
}
}
public class PersonTest {
public static void main(String[] args) {
Person a = new Person(); // ㉠
a.setAge(27); // ㉡
a.name = "Gildong"; // ㉢
System.out.println(a); // ㉣
}
}
1
㉠
2
㉡
3
㉢
4
㉣
해설

문법 오류가 발생하는 곳은 a.name = "Gildong";(㉢)이다.

name 필드는 private으로 선언되어 Person 클래스 내부에서만 접근할 수 있다. PersonTest 클래스에서 a.name에 직접 대입하면 접근 제한 위반으로 컴파일 오류가 난다.

  • new Person()은 생성자를 정의하지 않아도 컴파일러가 제공하는 기본 생성자로 객체를 만든다.
  • a.setAge(27)는 public 메서드 호출이므로 다른 클래스에서도 문제없다.
  • System.out.println(a)는 재정의된 toString()을 자동 호출해 문자열을 출력하므로 정상이다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.