private中的Java提供类级别的封装。可以封装一个对象吗?还是这样做徒劳?

例如,如果我们将一个类定义为

 public class Person {

      private String ssn;

      private ArrayList<Person> friends = new ArrayList<Person>();

      public void addFriend (Person stranger) {

           friends.add(stranger);

           // but here I have access to her ssn
           System.out.println(stranger.ssn);
      }
}


当我要求将ssn的对象作为参数传递给它时,如何屏蔽上面方法stranger中对addFriend()stranger的访问?

最佳答案

Java没有“实例”专用访问修饰符,即。您只能在其中限制对this实例的字段/方法的访问。

而且您可能不需要一个。您正在上Person课。你是开发商。您需要对自己隐藏什么?

10-07 13:13