学习访问器(存取(getter、setter))方法的声明使用和方法调用
更多精彩请阅读 东陆之滇的csdn博客:http://blog.csdn.net/zixiao217
在第五节中展示的getter、setter方法我们也叫访问器方法(迅速温故:getter方法是返回指定属性值的的方法,setter方法是可以设置(修改)指定属性的方法)。封装一个类的实例对象的数据,你需要声明其属性变量为private,然后提供访问器方法。
访问器方法的命名严格遵守JavaBean模式。在这种模式下的一个示例:属性foo有一个getter方法为getFoo(),有一个setter方法为setFoo()。JavaBeans模式是很常见的,Eclipse IDE支持内建,你可以自动生成getter、setter方法,具体步骤可以回顾第五节的内容。
访问器的一些参考:
到目前为止,最简单的方法生成getter、setter方法可以使用Eclipse。但是你也应该知道如何手动编写getter、setter方法。
假设有一个属性foo,类型是java.lang.String。关于foo属性的完整的访问器方法:
private String foo;
public String getFoo() {
return foo;
}
public void setFoo(String value) {
foo = value;
}
方法的调用时很简单的,第五节的测试用例中已经展示了调用getter方法获得对应的属性值了。
调用一个对象的方法,你需要引用这个对象。方法的调用包含:
无参方法调用的语法:
objectReference.someMethod();
这是一个示例:
Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");
p.getName();
含参方法的调用:
objectReference.someOtherMethod(parameter1, parameter2, . . ., parameterN);
这是一个示例(设置name属性值):
Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");
p.setName("Jane Q Author");
我们还记得,构造器也是方法。调用方法时,你可以用空格和换行符分隔参数。下面两种方式是一样的:
/*方式一*/
new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");
/*方式二*/
new Person("Joe Q Author",// Name
42, // Age
173, // Height in cm
82, // Weight in kg
"Brown",// Eye Color
"MALE");// Gender
注意上面的注释,可以让之后接手项目的人容易看懂。一看,开发人员就可以知道每个参数是什么。
方法可以嵌套调用:
Logger l = Logger.getLogger(Person.class.getName());
l.info("Name: " + p.getName());
这里,通过Person.class.getName()的返回值作为调用 getLogger()的参数。还记得,getLogger是静态方法的调用,使用类名调用,和对象方法稍有不同。
1.关于JavaBean模式的最好描述是? a.它是你编写任何java程序都需要遵守的规范. b.这是一种特别的方式,关于如何声明,访问,和设定一个java对象的属性值 c.JavaBean模式无法再编码中使用,它只存在理想条件中. d.以上说法均不对 2.invoking一个方法 and calling一个方法的区别? a.Invoking是使用关键字static调用. Calling方法仅仅针对实例对象的方法. b.Calling一个方法意味着彻底记录它, invoking只在源码层面调用. c.没什么区别,都是执行一个方法 d.区别只在Python或者Ruby语言中. e.以上说法均不对 3.构造器不是方法 a.视编译器而定 b.错 c.有时候是,只是构造器不能有参数 d.对 4.**编程题**:实现Person的toString()方法. 并且将该代码在第5个问题中使用. 使用Javadoc描述toString()方法。 5.**编程题**: 编写一个单元测试用例用来测试第4个问题中你编写的toStirng()方法. 将你的测试方法添加到上一节中的PersonTest中去。.
答案见下一节。