A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一切都好 中级黑马   /  2013-12-28 20:54  /  1544 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 一切都好 于 2013-12-28 23:22 编辑

字段和属性的区别

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

6 个回复

倒序浏览
属性其实就是对私有字段的读取和写入,以便做些公有字段无法完成的任务,他的使用方式和公有字段完全一样,所以可以理解成属性是为了满足对公有字段的特殊需求而产生的附属品。因而当我们选择使用属性还是使用字段时,主要看需求,如果不需设置访问权限、不需在赋值时检测值是否满足要求、不需要在赋值时修改对象其他一些状态等特殊的需求时,使用公有字段即可,否则就使用属性。

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
1. 字段是类或结构中的对象或值;
2. 类和结构使用字段可以封装数据;
3. 字段通常应为 private;
4. 外部类应该通过方法、属性或索引器间接访问字段;
5. 属性使类能够以一种公开的方法获取和设置值,同时隐藏实现或验证代码;
6. get 属性访问器用于返回属性值,而 set 访问器用于分配新值。这些访问器可以有不同的访问级别。
7. value 关键字用于定义由 set 索引器分配的值。
8. 不实现 set 方法的属性是只读的;
9. 对于不需要任何自定义访问器代码的简单属性,可考虑选择使用自动实现的属性。

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
属性是为了保护与之相对应的字段的,保证对字段的读取与赋值符合要求。属性通俗点说,就是定义一个public的具有get/set方法的变量,这个字段是用于保护一个私有变量,变量如果定义在方法外类里面就叫字段,前面如果没有访问修饰符默认是private,是私有的,外部想访问到这个字段,只能通过这个字段的属性来访问,因为属性是公共的。
简单说,属性是为了保护与之相对应的私有字段。

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
Java中的属性,通常可以理解为get和set方法。而字段,通常叫做“类成员”。

这两个概念是完全不同的。

属性只局限于类中方法的声明,并不与类中其他成员相关。例如:
void setA(String s){}
String getA(){}
当一个类中拥有这样一对方法时,这个类中拥有一个可读写的a属性(注意是小写a)。如果去掉了set的方法,则是可读属性,反之亦然。

类成员(字段),通常是在类中定义的类成员变量,例如:
public class A{
private String s = "123";
}
可以说A类中有一个成员变量叫做s。
回复 使用道具 举报
属性可以设置是否读写,可以在get和set中加入一些控制,适合和外部交互使用,字段是在程序内部使用,是隐藏的

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
V_John 中级黑马 2013-12-29 10:47:36
7#
于磊 发表于 2013-12-28 22:04
Java中的属性,通常可以理解为get和set方法。而字段,通常叫做“类成员”。

这两个概念是完全不同的。

这里是.NET板块哦;P
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马