static 제어자를 빼면 근본적인 차이가 하나 생긴다. 예를 들어 Member 객체는 자신이 어느 네트워크에 속하는지 알게 된다. 이 원리를 살펴보자.
다음은 회원을 네트워크에 추가하는 메서드다.
public class Network {
...
public Member enroll(String name) {
Member newMember = new Member(name);
members.add(newMember);
return newMember;
}
}
아직은 별일 없어 보인다. 다음과 같이 회원을 추가하고 참조를 얻을 수 있다.
Network myFace = new Network();
Network.Member fred = myFace.enroll("Fred");
이제 Fred는 이 네트워크가 더 이상 가장 인기 있는 소셜 네트워크가 아니라고 느껴 멤버십을 해지하려고 한다.
fred.deactivate();