我只是想知道使用set和get方法之间是否有任何区别,只是使用object.variableName来设置和获取?谢谢。
package hello;
public class Helloworld {
int num;
public static void main(String[] args) {
Helloworld hello1 = new Helloworld();
Helloworld hello2 = new Helloworld();
hello1.num = 5;
System.out.println(hello1.num);
hello2.setNum(5);
System.out.println(hello2.getNum());
}
void setNum(int i) {
this.num = i;
}
int getNum() {
return this.num;
}
}
答案 0 :(得分:1)
主要原因是封装。您希望您的变量是私有的,而不是由用户或客户端直接修改,因为它可能会影响系统其他部分的行为。
答案 1 :(得分:1)
它基本上是与封装概念有关的最佳实践。
如果您使用get和set方法,那么如果您决定在get或set方法中添加一些额外的逻辑(例如验证),则以后会有更大的灵活性。
对于getter,如果变量是基元,则还可以阻止使用类修改变量。
答案 2 :(得分:0)
因为有时候变量是私有的,无法通过obj.varname
访问。简而言之:封装。
为了保护您的程序,您希望变量尽可能经常变为私有,如果您想要检查它是否是有效值或类似的东西,有时设置方法会更好。