为什么java要用get,set方法替代域的直接调用?
2014-06-21 18:41
489 查看
今天看Think in java,在看到方法调用的别名问题时,想到老师说要用get,set方法替代域的直接调用,想来还是很有好处的。
如下:
class Letter{
char c;
}
public class PassObject{
static void f(Letter letter){
letter.c='z';
}
public static void mian(String[] args){
Letter l = new Letter();
l.c = 'a';
System.out.println("l.c:" + l.c);
f(l);
System.out.println("l.c" + l.c);
}
}
其输出的结果为:
lc:a
lc:z
当在进行复制操作时,可能有很多地方都可以修改函数的值,当发现有错误的时候,你很难确定它是在什么地方别修改的,可读性不太好。
而如果使用get,set方法则复制操作使用set方法,当值发生改变的时候,必然会在set函数中发生,可读性更好,更安全。
如下:
class Letter{
char c;
}
public class PassObject{
static void f(Letter letter){
letter.c='z';
}
public static void mian(String[] args){
Letter l = new Letter();
l.c = 'a';
System.out.println("l.c:" + l.c);
f(l);
System.out.println("l.c" + l.c);
}
}
其输出的结果为:
lc:a
lc:z
当在进行复制操作时,可能有很多地方都可以修改函数的值,当发现有错误的时候,你很难确定它是在什么地方别修改的,可读性不太好。
而如果使用get,set方法则复制操作使用set方法,当值发生改变的时候,必然会在set函数中发生,可读性更好,更安全。
相关文章推荐
- java类中为什么设置set和get方法操作属性
- java中为什么类名可以直接调用静态方法?
- java类中为什么设置set和get方法
- java使用反射调用set和get方法
- java类中为什么设置set和get方法
- java反射调用set和get方法的通用类
- java中静态方法中为什么不能使用this、super和直接调用非静态方法
- java 私有属性加get/set方法跟直接把属性设置成public有区别吗?
- java 反射调用Java类的私有set和get方法
- java 反射直接获取get/set方法的写法
- java反射调用set和get方法的通用类
- java反射调用set和get方法的通用类
- Java反射调用get方法和set方法
- 【封装】java中为什么要将属性进行私有化,又使用set和get方法来设置和获取属性呢?
- java将属性设置为私有,在给其添加get/set方法和直接把属性设置成public有什么区别
- Java通过PropertyDescriptor反射调用set和get方法
- PHP __get()和__set()的使用方法(存取或者调用未定义的属性变量)
- 为什么java.net.URLEncoder.encode方法要调用两次而不是一次呢?
- 使用java反射中的getMethod,invoke方法调用对象方法的实例
- java类在JAVA中定义类成员用属性set和get方法表示