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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

BNU_harry

初级黑马

  • 黑马币:8

  • 帖子:27

  • 精华:0

© BNU_harry 初级黑马   /  2015-10-24 12:09  /  5589 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币

17 个回复

倒序浏览
本帖最后由 于鸿鹏 于 2015-10-30 20:36 编辑

实例变量 可以理解为对象的成员变量,属性指的是对这个对象的描述,而方法指的是这个对象能干什么?
回复 使用道具 举报
实例变量和属性是一个包含关系,实例变量中包含属性,而属性是作为实例变量的子集。
比如:
1 你可以定义一个车的类,这个类包含一些属性信息,如颜色,速度,价格等。
2.你可以用车这个类来实例化一辆车,也就是创建一个对象属于车这一类,这个对象就是车这个类的一个实例变量,因为它是车这个类的,所以它也包含颜色,速度,价格等属性信息,你可以为这个实例去设定。

小弟急求黑马币,恳请大哥采纳,灰常感谢!
回复 使用道具 举报
实例变量是某个类产生的对象,而属性是类的组成部分,适用于每个该类产生的对象。例如
1、定义一个学生类,学生有姓名有学号,姓名、学号就是学生类的属性
2、用学生类实例化一个学生,这个学生(这个人)就是实力变量,也叫对象,这个学生也有姓名、学号等属性
回复 使用道具 举报
您好,实例变量和属性是一个包含关系,实例变量中包含属性,而属性是作为实例变量的子集
这种情况是需要为您举例子的,比如 汽车 是一个类(一个集合)
    1.您指出了一辆特定的车(请注意,这里是指的单个的一辆车),那么这辆车属于 汽车 这个类,这辆车您就可以理解为是汽车这个类的实例变量(指出了一个例子,实例也可以叫做 对象 )
    2.而您可以看到这辆车的颜色、车轮、发动机等等的车身上的部件,我们就可以称这些部件为 属性。
    3.而汽车是如何发动的,如何跑的,关于这些 我们可以称作它们是这辆车的方法,当然所有的车都可以发动,都可以跑,所以这些方法也是属于汽车的这个类(集合的)
如果用程序的角度编写的话,比如您设置了一个父类是NSObject的自定义类,就叫做Car
那么这个Car中,您可以通过在头文件用@property或者大括号'{}'直接声明一些变量,比如颜色、厂家等等,这些用@property或者大括号声明的变量称作Car这个类的属性
而您进入主程序,设置一个Car类的变量,并声明了一个内存空间给它
        Car * instanceCar = [[Car alloc]init];
那么这个"instanceCar"就是一个 实例对象(也是一个变量),这个变量是属于Car这个类的,所以这个变量可以使用Car类中所有的属性,也就是说,您可以用instanceCar.某属性的方法直接为这些变量赋值,而赋值后instanceCar这个变量就是一个独一无二的变量,是一个已经具体化的汽车的例子,所以称作实例对象(变量).
回复 使用道具 举报
这种情况是需要为您举例子的,比如 汽车 是一个类(一个集合)
    1.您指出了一辆特定的车(请注意,这里是指的单个的一辆车),那么这辆车属于 汽车 这个类,这辆车您就可以理解为是汽车这个类的实例变量(指出了一个例子,实例也可以叫做 对象 )
    2.而您可以看到这辆车的颜色、车轮、发动机等等的车身上的部件,我们就可以称这些部件为 属性。
    3.而汽车是如何发动的,如何跑的,关于这些 我们可以称作它们是这辆车的方法,当然所有的车都可以发动,都可以跑,所以这些方法也是属于汽车的这个类(集合的)
如果用程序的角度编写的话,比如您设置了一个父类是NSObject的自定义类,就叫做Car
那么这个Car中,您可以通过在头文件用@property或者大括号'{}'直接声明一些变量,比如颜色、厂家等等,这些用@property或者大括号声明的变量称作Car这个类的属性
而您进入主程序,设置一个Car类的变量,并声明了一个内存空间给它
        Car * instanceCar = [[Car alloc]init];
那么这个"instanceCar"就是一个 实例对象(也是一个变量),这个变量是属于Car这个类的,所以这个变量可以使用Car类中所有的属性,也就是说,您可以用instanceCar.某属性的方法直接为这些变量赋值,而赋值后instanceCar这个变量就是一个独一无二的变量,是一个已经具体化的汽车的例子,所以称作实例对象(变量).
回复 使用道具 举报
tsc0000 中级黑马 2015-10-30 19:57:30
7#
于鸿鹏 发表于 2015-10-24 16:16
实力变量 也叫着实例化变量     首先他是一个对象,属性指的是对这个对象的描述,而方法指的是这个对象能干 ...

兄弟你搞错了吧
回复 使用道具 举报
tsc0000 中级黑马 2015-10-30 20:08:45
8#
哥们有同感啊,刚开始也有这方面的疑惑,@protery(这个单词的中文翻译就是属性) 那么例如 @propery int a;
这里 a 就是它的一个属性,但这个a 是有多方面的意思(因为前面有@property),一是它自动为你生成了 getter和setter方面,另一方面它还包含了一个实例变量 _a, 注意有个下滑线,不过你可以人为给这个a起一个实例变量名,形式如@protery int a =b;这个b可以等同于默认的a,不过如果你现在这样写那 _a不存在的,
别一方面 @interface class:NSObject{ int a }; 这样写 a 就是一个实例变量名,它没有setter和getter方法,明白?
回复 使用道具 举报

恩  不好意思 我搞错了
回复 使用道具 举报
我的理解是属性就是变量,只不过属性是与某一个对象关联起来的变量。我们只可以通过对象来修改属性,不能直接修改(如果属性是public也可以直接修改,这与变量完全一致),而变量则可以直接修改。总的说来,属性就是在变量的基础上做了一层封装。
打个比方,一群人在看一个漂亮妹子,你可能无所谓,但如果是你的女票,你可能就不爽。都是妹子,就多了是不是你女票的差异。
希望对你有帮助。
回复 使用道具 举报
我理解的属性就是实例变量的一个统称,比如说增加一个类的属性,我们就会在类的声明里增加实例变量并实现其setter和getter方法,而声明里的这些实例变量都是这个类的属性之一
回复 使用道具 举报
看来分不好得
回复 使用道具 举报
本帖最后由 Spriea 于 2015-11-5 20:06 编辑

您好,实例变量属性是一个包含关系,实例变量中包含属性,而属性是作实例变量的子集。
举个栗子,有个人类Person,实例变量:Person *p = [Person alloc] init];
一个具体的人,就是实例属性:就是人得特点(头,手,脚)。(注意属性和方法要区分开来)

纯手工打造,还望采纳。
回复 使用道具 举报
从代码上来说比较好理解点:声明中{}中的为实例变量,而@property后的为属性.
如果属性没有声明的相匹配的实例变量,则编译器自动生成(也就是带下划线那个),如果有则直接复制(类似于@synthesize赋值).
主要作用的话个人是觉得为了分离代码,因为实例变量是可以继承的,而属性自动生成的实例变量是无法继承的,相应地实例变量又有@private这类修饰符,
回复 使用道具 举报
实例变量和属性是一个包含关系,实例变量中包含属性,而属性是作为实例变量的子集
这种情况是需要为您举例子的,比如 汽车 是一个类(一个集合)
    1.您指出了一辆特定的车(请注意,这里是指的单个的一辆车),那么这辆车属于 汽车 这个类,这辆车您就可以理解为是汽车这个类的实例变量(指出了一个例子,实例也可以叫做 对象 )
    2.而您可以看到这辆车的颜色、车轮、发动机等等的车身上的部件,我们就可以称这些部件为 属性。
    3.而汽车是如何发动的,如何跑的,关于这些 我们可以称作它们是这辆车的方法,当然所有的车都可以发动,都可以跑,所以这些方法也是属于汽车的这个类(集合的)
如果用程序的角度编写的话,比如您设置了一个父类是NSObject的自定义类,就叫做Car
那么这个Car中,您可以通过在头文件用@property或者大括号'{}'直接声明一些变量,比如颜色、厂家等等,这些用@property或者大括号声明的变量称作Car这个类的属性
而您进入主程序,设置一个Car类的变量,并声明了一个内存空间给它
        Car * instanceCar = [[Car alloc]init];
那么这个"instanceCar"就是一个 实例对象(也是一个变量),这个变量是属于Car这个类的,所以这个变量可以使用Car类中所有的属性,也就是说,您可以用instanceCar.某属性的方法直接为这些变量赋值,而赋值后instanceCar这个变量就是一个独一无二的变量,是一个已经具体化的汽车的例子,所以称作实例对象(变量).
回复 使用道具 举报
求指导,一起学习
回复 使用道具 举报
就是看看,路人甲。
回复 使用道具 举报
上面几个回复不要误人子弟  什么叫实例变量包括属性?谁教你的?连什么叫实例变量都不明白就来发帖?菜鸟太多了  类实例化一个对象  然后你们就以为叫实例变量了  呵呵
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马