Visibility
하나의 오브젝트가 다른 오브젝트를 갖고나 볼 수 있는 능력
- 메시지를 보내는 sender object가 메시지를 받는 receiver object를 볼 수 있는 능력을 의미한다.
Visibility의 유형
Visibility 유형은 크게 4가지 입니다.
1. Attribute visibility
2. Parameter visibility
3. Local visibility
4. Global visibility
Attribute visibility
A, B 관계에서 B가 A의 속성인 경우, A는 B에 attribute visibility 를 가집니다.
Parameter visibility
A에서 사용하는 메서드에 B가 파라미터로 전달될 때, A는 B에 Parameter visibility를 갖습니다.
Local visibility
A의 메서드 안에서 B가 지역 변수, local object 로 사용되는 경우, A는 B에 Local visibility 를 갖습니다.
Local visibility 를 갖는 경우는 두 가지로 나뉩니다.
1. 지역 변수에 새로운 인스턴스를 생성하는 경우
2. 함수호출 후 리턴으로 생성 된 인스턴스를 할당 받는 경우.
Global visibility
B가 전역적 가시성을 가진 경우 B는 Global visibility를 갖습니다.
C++에서는 인스턴스를 global variable에 할당하는 것이 가능하지만, Java에서는 불가합니다.