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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

BNU_harry

初级黑马

  • 黑马币:8

  • 帖子:27

  • 精华:0

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

5黑马币

17 个回复

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

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

纯手工打造,还望采纳。
回复 使用道具 举报
看来分不好得
回复 使用道具 举报
我理解的属性就是实例变量的一个统称,比如说增加一个类的属性,我们就会在类的声明里增加实例变量并实现其setter和getter方法,而声明里的这些实例变量都是这个类的属性之一
回复 使用道具 举报
newbee 中级黑马 2015-11-3 16:53:18
9#
我的理解是属性就是变量,只不过属性是与某一个对象关联起来的变量。我们只可以通过对象来修改属性,不能直接修改(如果属性是public也可以直接修改,这与变量完全一致),而变量则可以直接修改。总的说来,属性就是在变量的基础上做了一层封装。
打个比方,一群人在看一个漂亮妹子,你可能无所谓,但如果是你的女票,你可能就不爽。都是妹子,就多了是不是你女票的差异。
希望对你有帮助。
回复 使用道具 举报

恩  不好意思 我搞错了
回复 使用道具 举报
tsc0000 中级黑马 2015-10-30 20:08:45
7#
哥们有同感啊,刚开始也有这方面的疑惑,@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方法,明白?
回复 使用道具 举报
于鸿鹏 发表于 2015-10-24 16:16
实力变量 也叫着实例化变量     首先他是一个对象,属性指的是对这个对象的描述,而方法指的是这个对象能干 ...

兄弟你搞错了吧
回复 使用道具 举报
这种情况是需要为您举例子的,比如 汽车 是一个类(一个集合)
    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这个变量就是一个独一无二的变量,是一个已经具体化的汽车的例子,所以称作实例对象(变量).
回复 使用道具 举报
实例变量是某个类产生的对象,而属性是类的组成部分,适用于每个该类产生的对象。例如
1、定义一个学生类,学生有姓名有学号,姓名、学号就是学生类的属性
2、用学生类实例化一个学生,这个学生(这个人)就是实力变量,也叫对象,这个学生也有姓名、学号等属性
回复 使用道具 举报
实例变量和属性是一个包含关系,实例变量中包含属性,而属性是作为实例变量的子集。
比如:
1 你可以定义一个车的类,这个类包含一些属性信息,如颜色,速度,价格等。
2.你可以用车这个类来实例化一辆车,也就是创建一个对象属于车这一类,这个对象就是车这个类的一个实例变量,因为它是车这个类的,所以它也包含颜色,速度,价格等属性信息,你可以为这个实例去设定。

小弟急求黑马币,恳请大哥采纳,灰常感谢!
回复 使用道具 举报
本帖最后由 于鸿鹏 于 2015-10-30 20:36 编辑

实例变量 可以理解为对象的成员变量,属性指的是对这个对象的描述,而方法指的是这个对象能干什么?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马