public void setTo(String to) {
this.to = to;
}
public String getTo() {
return to;
}
上面的代码是做什么的?在我的项目文件中,我搜索setTo函数并且找不到setTo(),那么它是如何被调用的?这是指?
答案 0 :(得分:0)
看起来你有三个问题。我将按顺序回答它们:
以上代码的作用是什么?
这些方法允许类外的代码在类中设置和检索to
变量值,即使它已被声明为私有。
在我的项目文件中,我搜索了setTo函数,但没有找到setTo(),那么它是如何被调用的?
Spring使用setter方法进行依赖注入。基本上,Spring库中的Java会自动查找这些变量名,并调用以变量命名的相应方法,并设置'在名字前面。
IDE可以自动生成getter和setter,并且由于你需要Spring的setter,人们往往也会让IDE生成getter,即使他们不打算使用它们。
,这指的是什么?
this
是一个范围关键字
this.to
指的是名为to
的变量,它是这些getter / setter方法所在的类的一部分。 ' to
'没有' this.
'是指参数定义中的(String to)
,它是调用传递的参数。
答案 1 :(得分:0)
在面向对象编程中,其他类只能访问程序中的某些变量是错误的,因为在编写较大的程序时,您可能会在不知情的情况下更改某些变量。为了阻止这种情况,我们将您的类中的变量设为私有,并创建getter和setter。第一种方法是setter,它可以将类中的私有变量设置为用户想要的。这将阻止许多错误发生。
this
是一个调用当前所在类的关键字。如果作为参数传入的变量与在类顶部声明的私有变量相同,我们使用 this 来引用类顶部的变量。
答案 2 :(得分:0)
这两种方法是您班级属性setter-getter
的{{1}}。
您的源代码可能无法调用这些方法,但这些方法仍然被某些框架/第三方库调用,例如您在项目中使用的to
,JSF
。
答案 3 :(得分:0)
基本上,“Getters”和“Setters”是专门设计用于与Fields交互而不直接操作字段的方法。这称为“FieldEncapsulation”
https://en.wikipedia.org/wiki/Field_encapsulation
您可以访问它的方法,而不是直接访问Field。您可以限制代码中的使用,即不允许任何获取或设置,或两者兼而有之。
如果您有权访问Field本身,您可以执行任何操作,但如果您拆分该字段的方法,则可以
text.setName(name)
比撰写text = "name";
某些代码还专门使用getter / setter,而不是字段,所以确保你的字段有Getters / Setters是一个很好的做法。
例如,如果未设置getter / setter,Apache BeanUtils.copyBean()将不会复制bean。
你问了什么
public void setTo(String to) {
this.to = to;
}
public String getTo() {
return to;
}
意味着而不是说
String setTo = "hello";
or
String setTo2 = setTo;
你可以做到
setTo("hello");
or
String s2 = getTo();
因此setTo需要一个String参数,然后将我们的“to”字段String to;
提供给参数的值。
getTo然后将我们的字段输入并返回。
在某些情况下,人们会在set / get语句中添加其他代码,但我不确定它有多常见。
希望这有帮助!
答案 4 :(得分:0)
这些是名为“到”的类全局字符串变量(或属性)的 Getter 和 Setter 方法。相关的类通常与 getter 和 setter 方法包含在同一类中,因为它们与它们相关的变量也包含在内。如果您在Class构造函数下查看Class代码的顶部,您应该能够找到String变量' to ',例如:
private String to = ""; // or something similar
通常,如果有一个名为“ to ”的变量,还有另一个名为“来自”的变量(但并非总是如此),它也可能有 getter 和 setter 方法。
Getter 和 Setter 方法允许您在运行时从另一个类检索和修改类中包含的变量数据,例如:
MySpecialClass myClass = new MySpecialClass();
// Use the 'to' variable getter to retrieve its current
// contents and place those contents into the 'toVar' variable.
String toVar = myClass.getTo();
// Display the contents...
System.out.println(toVar);
// Set the 'to' variable within the MySpecialClass Class
// to hold the string "I hold this now"...
myClass.setTo("I hold this now");
// Use the 'to' variable getter again to retrieve its new
// contents and place those contents into the 'toVar' variable.
toVar = myClass.getTo();
// Display the contents again...
System.out.println(toVar);
现在 MySpecialClass 中包含的代码可以使用“到”变量及其新数据值。您会注意到Java类库以这种方式执行操作,与为JButton或JLabel等设置特定属性非常相似。