既然可以直接用setter方法访问Java中的私有变量,为什么还要用getter方法呢?

Why use the getter method when we can directly use the setter method to access the private variable in Java?

class Test
{
private int c;
int setc(int i)
{c=i;
return c;
}
/*int getc()
{
return c;
}*/
}
class GetSetEx
{public static void main(String args[])
{Test ob=new Test();//Test class object instantiation
System.out.println(ob.setc(100));//accessing c using setter
}
} 
//Output: 100

我可以在不使用 getter 方法的情况下访问变量 c 的值,并且 通过在 setter 方法本身

中返回它

是的,你可以这样做,但这是一种糟糕的编程习惯。好的编程约定是为所有私有成员生成 getters/setters。您编写的代码很难在具有数百行代码的大型项目中进行调试。

当你使用ob.setc(100)时,你不需要returnc,因为你已经有了100值。

您可以使用以下方法简化它: System.out.println(100);

为什么您想要 setter 也使用您的示例?

通常getters和setters在你设置一次值时很有用,在另一个地方,稍后,你需要取回值,而不需要再次设置。

在大型系统中,您可能需要访问 c,而无需先设置值,仅使用 setter 是不可能的。你不能传递空值,否则你会遇到 NullPointerException,为了解决这个问题,你必须捕获异常,到那时,你也会编写 getter。