黑马程序员技术交流社区

标题: 一个问题难以理解,希望大神讲解!!! [打印本页]

作者: 如远行客    时间: 2013-12-18 21:16
标题: 一个问题难以理解,希望大神讲解!!!
本帖最后由 如远行客 于 2013-12-19 17:15 编辑

怎么理解“属性的本质是方法,索引的本质是属性”???

作者: dongqinglove    时间: 2013-12-18 21:41
本帖最后由 dongqinglove 于 2013-12-18 21:53 编辑

我不认为这个句话正确,要弄明白属性、方法、及索引就必须弄清楚什么是类,什么是对象。类是对一个事物的抽象,而属性就是这个事物的特征,方法则是这个事物所具有的功能,索引属性允许以数组的方式来访问属性。举个简单的例子:人类,属性:眼睛,耳朵,方法:看东西,听声音,很显然属性的本质不是方法
作者: 许庭洲    时间: 2013-12-18 21:47
属性:
1.允许像调用公共数据成员一样调用方法。
2.可通过简单的名称进行访问。
3.可以为静态成员或实例成员。
4.属性的 get 访问器没有参数。
5.属性的 set 访问器包含隐式 value 参数。
6.支持对自动实现的属性使用短语法。
索引器
1.允许对一个对象本身使用数组表示法来访问该对象内部集合中的元素。
2.可通过索引器进行访问。
3.必须为实例成员。
4.索引器的 get 访问器具有与索引器相同的形参表。
5.除了值参数外,索引器的 set 访问器还具有与索引器相同的形参表。
6.不支持短语法。

作者: 雨中恋人    时间: 2013-12-18 22:55
属性用于以可验证的方式访问私有成员变量。索引器用于以更便捷的方式访问对象中包含的成员数组或集合。
区别:
1、属性名可自定义,索引器必须以this命名。
2、属性可以为实例或静态,索引器必须是实例的。
3、索引器有索引参数列表,而属性没有。
作者: 红鹰(Jake)    时间: 2013-12-18 23:40
1、属性是对类字段的封装,用以更快、更好的控制和访问字段
2、索引则主要是对属性,当然也可以访问字段。
作者: 土豆泥    时间: 2013-12-19 14:37
索引器是属性的一种,它本质上和属性一样是方法。索引器类似于属性,不同之处在于它们的访问器采用参数。

属性可以理解成对象的变量
方法可以理解成对象的函数
作者: 邢换换    时间: 2013-12-19 15:19
属性可以理解成特殊访问器的方法, 注意, 属性其实在中间语言还是方法.属性这个东西更接近于人类认识世界的方法.比如把人抽象成类, 他有身高,体重,肤色等.这些都是数据, 用属性这种数据结构更容易去描述和理解,而不是只有方法(c,c++,java等只有方法没有属性的概念).至于索引器, 适用于集合,比如班级可以作为一个集合(N排M列).为了确定某一个具体学生,可以找到他的所在的排和列,就可以使用类似于Students[n][m]这样的方式去访问这个同学"数据".这就是索引器的使用.可以理解一种特殊的属性, 亦即特殊的方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2