We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
1568091
public String foo;
上面的代码真的不如下面的吗?
private String foo; public void setFoo(String foo) { this.foo = foo; } public String getFoo() { return foo; }
下面这种写法有什么意义吗?
The text was updated successfully, but these errors were encountered:
如果你日后希望在别人访问这个字段的时候做出一些额外的事情,那么一开始就使用getter/setter方法可以让你更加轻松的修改。getter/setter方法就是天生的拦截器
private String foo; public void setFoo(String foo) { this.foo = foo; System.out.println("you are setting foo"); } public String getFoo() { System.out.println("you relize you need" + " do something two month later"); return foo; }
如果你只实现了get而没有实现set,那么这个字段就是read only的了。
private char[] name; public void setName(String foo) { this.name = foo.toCharArray(); } public String getName() { return String.valueOf(name); }
你以为name是String,其实它是char[].
你可以在set get方法上打断点, 来探索运行时这个对象的属性的值是 什么时候发生改变的。很多时候这非常有用。
子类可以通过覆盖父类的getter settter方法,来改变一些事情
允许你对这个字段占用的内存手动的管理
private String foo; public void setFoo(String foo) { this.foo = foo; } protected String getFoo() { return foo; }
getter 和 setter有不同的访问控制符
Sorry, something went wrong.
如果你真的需要对get / set进行监控的话,你只需要让这个字段变为private,然后编辑器就会提醒你在哪些地方使用了这个值,你前往相关的代码进行处理就行了,没必要使用getter setter 方法
在setter 方法中对字段进行校验真的很少用,你在给对象赋值前进行处理不就行了?
如果你在setter方法对参数的值做出了修改,这对调用这个方法的人来说是一个噩梦
你确实可以在子类继承的时候覆盖父类的方法,但是,这对调用者来说真的很容易出错。
No branches or pull requests
为什么使用getter/setter方法?不是多此一举吗?
1568091
上面的代码真的不如下面的吗?
下面这种写法有什么意义吗?
The text was updated successfully, but these errors were encountered: