4.6 对外发布的接口——public

img

扫码看视频

在类的设计中,一些实现细节需要对外隐藏,因此我们会使用private来提供私有的访问控制,同样,我们也需要对外暴露一些方法,以便用户可以操作类的对象,来完成业务功能。这些对外暴露的方法会采用public来声明,表示公共的方法,可以看成对象提供给外部的访问接口,随便访问。

上一节我们提到类的实例变量可以提供一组get/set方法,以便外部可以获取和修改对象的状态,而这一组方法通常就会声明为public,我们看代码4.25。

img
img

现在Animal类和Fish类已经接近实际类的设计了。在实际开发中,你所看到的类大多数都如代码4.25中所示的类,实例变量声明为private,需要对外访问的方法声明为public。

这时,读者可能会问,你给这些方法添加了public访问说明符,在访问上和原来没有添加的时候好像没有什么区别啊。确实如此,就本例而言,不管是否添加public,都不影响类中方法的访问。至于为什么,读者可以先暂时放下好奇心,性急的读者可以提前阅读第5章的内容,现在我们只需要记住,对外暴露的方法一般都应该声明为public即可。

除了方法可以声明为public外,类的成员变量也可以声明为public,这样在类的外部就可以任意访问这些变量。当然,这不是一个好的设计习惯,除了静态成员变量外,在99%的情况下,类的实例变量都应该声明为private。