我们都知道类是对象的模板,可以用来创建对象,那么谁可以用这套模板创建对象呢?我们不可能让别人知道我们这套模板的全部细节,那我们应该提供哪些信息以及保留哪些信息呢?这些都是我们在设计类的时候需要思考的问题。
我们先假设一下一个公司开发了一个模板,public的意思是公司把开发了一个模板的信息公布出去了,所有人都知道了这个公司开发了这套模板;不加修饰符的意思是公司没有把这套模板给宣扬出去,所以只是在公司内知道这套模板,在公司外没有知道这套模板;protected和private在类的声明上是不被允许使用的,因为公司开发了这套模板就是要使用的,要么公布出去大家一起用,要么留着给公司自己用,而不是将这套模板给藏起来(这里讨论的都是外部类)。所以类的声明可以是这样的:
[public] class Person{}
我们讨论一下类的属性。我们知道类的属性对应着对象的状态,对象的状态是会有一定的约束的,比如人的年龄不会是负数,性别也只有男女,我们不应该让用户随意去创建对象,因为它们很有可能会创建出一些不太合理的对象(比如创建了年龄为负数的人),所以我们应该去给它们一点约束,用private将属性给藏起来,然后再写一个公有的方法提供给用户去定义对象的状态(我们需要在这个方法里给出我们的约束条件)。当然,我们把整个属性都藏起来了,也需要提供一个公有的方法让用户能够获取到这个对象的状态。
public class Person{
private String n