关于JAVA封装的一个问题
发布网友
发布时间:2022-05-27 14:24
我来回答
共2个回答
热心网友
时间:2023-10-27 19:28
这个设计到一个概念性问题,封装成Bean文件,而Bean文件封装的格式就是setXXX()和getXXX()方法和实现该方法的private成员变量。这是java编程的一种思想,可以更直观的去描述一个对象的属性,取值更安全。 保护类中属性值的安全,只能访问其中的方法,而不能直接访问对象的属性 。因为你的 A*Teacher2类是一个完成的类,实现了你想要的功能,所以你感觉不到get的用途,但是如果你要在其他类中使用 A*Teacher2类中的成员变量怎么办,那就不行了,只能借助get,如果你把成员变量设置为public类型的,那就有是另一种形式了 。给楼主个建议,建议楼主今后的学习中多多使用set,get这种设置属性的方法,在今后的学习中你会明白他的重要性额
热心网友
时间:2023-10-27 19:29
1、为了便于维护
比如:现在里面有个
private int a;
对应的有
public void setA(int a) {
this.a = a;
}
public int getA() {
return a;
}
那么,有一天,突然觉得这个a名字不好,应该换成m(即 private int m;)。可是,这些已经被别人(或者自己的其它程序所使用),此时的getter和setter就表现出来了:
public void setA(int a) {
this.m = a;
}
public int getA() {
return m;
}
就这样改了,其它的程序仍然能够正常使用;
2、可以说是为了安全(能做一些检查)
比如:
这个a表示的是年龄,那么a就不能是小于0的数,也不可能是一个好几百的什么的数。此时的setter就表现出来了:
public void setA(int a) {
if(a > 0 && a < 300) {
this.a = a;
} else {
System.out.println("Too large a value");
}
}
这样就可以避免一些会导致程序错误的情况发生。