
上QQ阅读APP看书,第一时间看更新
6.3 实例方法
在Main()中调用WriteLine()方法并对姓名进行格式化其实是笨办法。更好的办法是在Employee类中提供方法专门进行格式化。将功能修改成由Employee提供,而不是作为Program的成员,这符合类的封装原则。为什么不把与员工姓名相关的方法放到包含姓名数据的类中呢?代码清单6.7演示了如何创建这样的一个方法。
代码清单6.7 从包容类内部访问字段

和第5章的同名方法相比,这里的GetName()没有太多特别之处,只是方法现在访问对象中的字段,而非访问局部变量。此外,方法声明没有用static来标记。本章稍后会讲到,静态方法不能直接访问类的实例字段。相反,必须先获得类的实例才能调用实例成员——无论该实例成员是方法还是字段。
添加GetName()方法后就可以在更新后的Program.Main()中使用它,如代码清单6.8和输出6.2所示。
代码清单6.8 从包容类外部访问字段


输出6.2
