Pau*_*sey 126
这并不是真正需要的教程.阅读封装
private String myField; //"private" means access to this is restricted
public String getMyField()
{
//include validation, logic, logging or whatever you like here
return this.myField;
}
public void setMyField(String value)
{
//include more logic
this.myField = value;
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 39
在Java中,getter和setter是完全普通的函数.使他们成为吸气剂或制定者的唯一因素是惯例.foo的getter被称为getFoo,setter被称为setFoo.在布尔值的情况下,getter被称为isFoo.它们还必须具有特定声明,如"name"的getter和setter示例所示:
class Dummy
{
private String name;
public Dummy() {}
public Dummy(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
使用getter和setter而不是让你的成员公开的原因是它可以在不改变界面的情况下改变实现.此外,许多使用反射来检查对象的工具和工具包只接受具有getter和setter的对象.例如,JavaBeans必须具有getter和setter以及一些其他要求.
use*_*648 12
class Clock {
String time;
void setTime (String t) {
time = t;
}
String getTime() {
return time;
}
}
class ClockTestDrive {
public static void main (String [] args) {
Clock c = new Clock;
c.setTime("12345")
String tod = c.getTime();
System.out.println(time: " + tod);
}
}
Run Code Online (Sandbox Code Playgroud)
当你运行程序时,程序从主电源开始,
setTime()
由对象c调用time
设置为传递的值getTime()
由对象c调用tod
并tod
打印出来您可能还想阅读" 为什么getter和setter方法是邪恶的 ":
尽管getter/setter方法在Java中很常见,但它们并不是特别面向对象(OO).实际上,它们可能会损害代码的可维护性.此外,许多getter和setter方法的存在是一个红旗,该程序未必从OO角度设计得很好.
本文解释了为什么不应该使用getter和setter(以及何时可以使用它们)并提出一种设计方法,以帮助您摆脱getter/setter心态.
归档时间: |
|
查看次数: |
512155 次 |
最近记录: |