java的setter、getter 以及python的@property函数
2017-01-20 09:26
357 查看
关于python的装饰器的相关知识,可以查看廖雪峰的blog: http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318435599930270c0381a3b44db991cd6d858064ac0000 然后理解@property装饰器的时候,廖雪峰用了一些java的术语导致我很难理解,比如getter和setter。我百度了一些,找了相关资料:
java getter和setter作用是什么?
在java中经常是声明一个私有的变量,然后给出他们的公共的getter和setter方法。比如:private String name; public String getName() {return name;}public void setName(String name) {this.name = name;}请问:这样做的好处是什么?为什么要定义getter和setter呢。直接public String name;这样不是省去很多麻烦吗?注:希望真正懂的给个明确的答案。在浏览一些技术方面的帖子的时候发现有些人根本就不懂(也许是只学了点皮毛),就那里里信口开河胡说乱说。收起jinzhu0216 | 浏览25312 次推荐于2016-01-01 02:21:44最佳答案用代码讲解一下: public class Student { String name; public String getName() { return name; } public void setName(String name) { this.name = name; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Student s1=new Student(); s1.setName("小明"); System.out.println("学生的姓名为:"+s1.getName()); } } 上面的意思是创建一个学生类,声明一个name变量,并给了它getter和setter方法。 先说setter方法,刚开始创建name变量时没有赋值,后面用这个方法给他赋值“小明” 再说getter方法,name变量有了值“小明”后就可以用这个方法把它调出来。
事实上getter和setter的好处有很多。 1、debug。当你发现对象的某个属性数据总是被莫名的修改。你需要找到究竟哪些地方。如果直接将属性写成public的进行赋值。你就不得不在所有用到这个属性的地方下断点。这几乎是很难办到的。 2、getter和setter意味着读写分离。例如只读可以只暴露getter 3、在没有注解时,用来标记哪些属性才能被外部读写。 字数有限,就说3点
然后可以对照廖雪峰的blog关于@property的章节理解到底什么事@property
相关文章推荐
- Java网络编程从入门到精通(17):Socket类的getter和setter方法(1)
- Java网络编程从入门到精通(18):Socket类的getter和setter方法(2)
- paip.判断字符是否中文与以及判读是否是汉字uapi python java php
- getter and setter In java
- 属性和setter以及getter
- Java 设计模式 动态调用 JavaBean 的 setter 和 getter
- 5种方式将机器学习带到Java、Python以及Go等编程语言
- 【java performance】让访问实例内变量的getter/setter方法变成”final”
- paip.日期时间操作以及时间戳uapi php java python 总结
- 【Java基础】setter与getter方法
- java反射getter和setter
- java学习08-getter & setter
- Java的getter/setter在Android_JSON解析中的关键作用
- 关于JAVA的getter和setter问题
- java基础之反射-通过反射调用某个属性的setter和getter方法
- 关于java的setter&getter方法的注意事项
- 【译】6. Java反射——Getter和Setter
- paip.数组以及集合的操作uapi java php python总结..
- java中封装类Feild和使用setter和getter方法访问封装的类Feild
- Python中的sorted()函数以及operator.itemgetter()函数