다음 자바 코드를 클래스 다이어그램으로 바르게 표현한 것은?class … | [7급 국가직 소프트웨어공학] 23년 1회차 기출문제 상세 페이지
1[7급 국가직 소프트웨어공학] 23년 1회차
다음 자바 코드를 클래스 다이어그램으로 바르게 표현한 것은?class Student {
private String name;
protected String department;
private static int nextAvailID = 1;
protected void passed(Course theCourse) {...}
public static void getNextAvailID() {...}
}
1
| Student |
|---|
| +name: String #department: String -nextAvailID: int = 1 |
| +passed(theCourse: Course) +getNextAvailID() |
2
| Student |
|---|
| -name: String #department: String -nextAvailID: int = 1 |
| #passed(theCourse: Course) +getNextAvailID() |
3
| Student |
|---|
| -name: String -department: String -nextAvailID: int = 1 |
| #passed(theCourse: Course) +getNextAvailID() |
4
| Student |
|---|
| -name: String #department: String -nextAvailID: int = 1 |
| #passed(theCourse: Course) +getNextAvailID() |
해설
name은 -(private), department와 passed는 #(protected), static 멤버는 밑줄로 표시한 다이어그램이 맞다.
UML 가시성은 public +, private -, protected # 이며, static 속성·연산은 밑줄로 나타낸다. 따라서 nextAvailID는 밑줄 친 -nextAvailID: int = 1, getNextAvailID는 밑줄 친 +getNextAvailID()이다.
- name을 +, passed를 +로 표시한 다이어그램은 가시성이 틀렸다.
- department를 -로 표시한 다이어그램은 protected를 private으로 잘못 나타냈다.
- static 멤버에 밑줄이 없는 다이어그램은 정적 멤버를 표현하지 못했다.
오류나 개정된 내용이 보이면 알려주세요