当您只能使用 object.variable 名称来获取或设置时,为什么要使用设置和获取方法?
Why use set and get method when you can just use object.variable name to get or set?
我只是想知道使用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;
}
}
因为有时变量是私有的,无法通过 obj.varname
访问。简而言之:封装。
为了保护您的程序,您希望变量尽可能地私有,有时如果您想检查它是否是有效值或类似的东西,set 方法会更好。
主要原因是封装。您希望您的变量是私有的,并且不能由用户或客户端直接修改,因为它可能会影响系统其他部分的行为。
这基本上是与封装概念有关的最佳实践。
如果您使用 get 和 set 方法,那么如果您决定向 get 或 set 方法添加一些额外的逻辑(例如验证),您以后将拥有更大的灵活性。
在 getter 的情况下,如果它是原始变量,您还可以防止使用 class 修改变量。
我只是想知道使用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;
}
}
因为有时变量是私有的,无法通过 obj.varname
访问。简而言之:封装。
为了保护您的程序,您希望变量尽可能地私有,有时如果您想检查它是否是有效值或类似的东西,set 方法会更好。
主要原因是封装。您希望您的变量是私有的,并且不能由用户或客户端直接修改,因为它可能会影响系统其他部分的行为。
这基本上是与封装概念有关的最佳实践。
如果您使用 get 和 set 方法,那么如果您决定向 get 或 set 方法添加一些额外的逻辑(例如验证),您以后将拥有更大的灵活性。
在 getter 的情况下,如果它是原始变量,您还可以防止使用 class 修改变量。