1. //
  2. // Dog.h
  3. // OC4_实例变量的作用域
  4. //
  5. // Created by zhangxueming on 15/6/16.
  6. // Copyright (c) 2015年 zhangxueming. All rights reserved.
  7. //
  8.  
  9. #import <Foundation/Foundation.h>
  10.  
  11. @interface Dog : NSObject
  12. {
  13. @protected//受保护的实例变量, 在当前类里面可以直接访问,在类外面不可以直接访问,但是可以通过调用方法间接访问,子类可以直接继承受保护的实例变量
  14. NSString *_name;
  15. NSInteger _age;
  16. @private //私有的实例变量, 在当前类里面可以直接访问,在类外面不可以直接访问,但是可以通过调用方法间接访问,子类不可以继承私有的实例变量
  17. float _weight;
  18. float _height;
  19. @public //公有的实例变量, 在类内类外都可以直接访问,子类可以直接继承公有的实例变量
  20. NSInteger _number;
  21. }
  22.  
  23. //@property 关键字展开的实例变量是私有的
  24.  
  25. @property (copy,nonatomic) NSString *name;
  26. @property (assign,nonatomic)NSInteger age;
  27. @property (assign,nonatomic)float weight;
  28. @property (assign,nonatomic)float height;
  29. //@property (assign,nonatomic)NSInteger number;
  30. - (void)setNumber:(NSInteger)number;
  31. - (NSInteger)number;
  32.  
  33. - (void)printNumber;
  34.  
  35. @end
  1. //
  2. // Dog.m
  3. // OC4_实例变量的作用域
  4. //
  5. // Created by zhangxueming on 15/6/16.
  6. // Copyright (c) 2015年 zhangxueming. All rights reserved.
  7. //
  8.  
  9. #import "Dog.h"
  10.  
  11. @implementation Dog
  12. {
  13. NSInteger abc;
  14. }
  15.  
  16. - (void)setNumber:(NSInteger)number
  17. {
  18. _number = number;
  19. }
  20.  
  21. - (NSInteger)number
  22. {
  23. return self->_number;
  24. }
  25.  
  26. - (void)printNumber
  27. {
  28. NSLog(@"number = %li", [self number]);
  29. }
  30.  
  31. @end
  1. //
  2. // main.m
  3. // OC4_实例变量的作用域
  4. //
  5. // Created by zhangxueming on 15/6/16.
  6. // Copyright (c) 2015年 zhangxueming. All rights reserved.
  7. //
  8.  
  9. #import <Foundation/Foundation.h>
  10. #import "Dog.h"
  11.  
  12. int main(int argc, const char * argv[]) {
  13. @autoreleasepool {
  14. Dog *xiaoHei = [[Dog alloc] init];
  15. // xiaoHei->_name = @"小黑";
  16. // xiaoHei->_age =12;
  17. // _name = @"xiaohei";
  18. xiaoHei.name =@"小黑";
  19. xiaoHei.age = ;
  20. NSLog(@"name =%@ age = %li", xiaoHei.name, xiaoHei.age);
  21.  
  22. xiaoHei.weight = 34.2;
  23. xiaoHei.height = ;
  24. NSLog(@"weight = %.2f height = %.2f", [xiaoHei weight], xiaoHei.height);
  25.  
  26. xiaoHei->_number = ;
  27. NSLog(@"number = %li", xiaoHei->_number);
  28.  
  29. }
  30. return ;
  31. }

OC4_实例变量的作用域的更多相关文章

  1. Python语言特性之4:类变量和实例变量

    类变量就是供类使用的变量,实例变量就是供实例使用的.如下面的代码: class Person: name = "Tacey" p1 = Person() p2 = Person() ...

  2. Python中变量的作用域(variable scope)

    http://www.crifan.com/summary_python_variable_effective_scope/ 解释python中变量的作用域 示例: 1.代码版 #!/usr/bin/ ...

  3. ruby中实例变量、类变量等等的区别和联系

    ruby的变量有局部变量,全局变量,实例变量,类变量,常量. 1.局部变量 局部变量以一个小写字母开头或下划线开头 局部变量有局部作用域限制(比如一个block内),它的作用域起始于声明处,结束于该声 ...

  4. 深入浅出 JavaScript 变量、作用域和内存 v 0.5

    本文主要从原理入手分享变量和作用域的相关知识,最后结合本文所分享知识,再次深入了解下闭包的运行原理. 主要参考<JS高级程序设计> <JS权威指南> <高性能 JS> ...

  5. C语言的变量的作用域和生存期

    一.c程序存储空间布局 C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分:一个程序只有一个副本:只读,防止程序由于意外事故而修改自身指令:      2)初始化数据段(数据段)——在 ...

  6. IOS总结 静变量static、全局变量extern、局部变量、实例变量

    1.静态变量 static 什么是静态变量:从面向对象的角度触发,当需要一个数据对象为整类而非某个对象服务,同时有力求不破坏类的封装性,既要求此成员隐藏在类的内部,有要求对外不可见的时候,就可以使用s ...

  7. 精读《javascript高级程序设计》笔记二——变量、作用域、内存以及引用类型

    变量.作用域和内存问题 执行环境共有两种类型——全局和局部 作用域链会加长,有两种情况:try-catch语句的catch块,with语句. javascript没有块级作用域,即在if,for循环中 ...

  8. JavaScript 高级程序设计(第3版)笔记——chapter4:变量、作用域和内存问题

    Chapter4 变量.作用域和内存问题 l  理解基本类型和引用类型的值 l  理解执行环境 l  理解垃圾收集 4.1基本类型和引用类型的值 l  ECMAScript变量包含两种不同数据类型的值 ...

  9. java局部/成员/静态/实例变量

    局部变量和成员变量主要是他们作用域的区别成员变量个是类内部:局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置).另外,成员变量可以不显式初始化,它们可以由系统设定 ...

随机推荐

  1. iOS UIButton EdgeInsets

    说一下系统的button,image 和 title的位置关系 默认image 和 title的位置关系: 随便画了草图,有点丑,不过不妨碍理解: 第一种:在button上只设置文字,这个时候,but ...

  2. SAP BW标准模型简介(BW星形模型 BW Star Schema )

    标准星型模型是 数据仓库中一种常用的组织信息和数据的多维数据模型.它由中心的一个事实表(Fact Table)和一些围绕它的维度表(Dimensional Table)组成.  事实(Fact)着眼于 ...

  3. synthesize(合成) keyword in IOS

    synthesize creates setter and getter (从Objective-C 2.0开始,合成可自动生成存取方法) the setter is used by IOS to s ...

  4. 关于AS3的垃圾回收

    FlashPlayer运行GC(Gabage Collection)的时间并不固定,它会根据你的内存的占用情况来决定运行GC的时间.它会根据用户机器的内存值来设定一个阀值,然后将程序的占用内存量保存在 ...

  5. asp.net常用函数

    ASP.NET网络编程中常用到的27个函数集 Abs(number) 取得数值的绝对值.   Asc(String) 取得字符串表达式的第一个字符ASCII 码.   Atn(number) 取得一个 ...

  6. Android(java)学习笔记96:如何改变spinner系统自带的字体和颜色

    1.首先我们要知道spinner系统自带字体和颜色本质: 原生的Spring 控件是无法更改字体和颜色的... 从下面的代码可以看出...红色的标注显示使用的是Android默认的布局.. Spinn ...

  7. arcgis mdb和gdb编辑区别

    arcgis gdb保存时错误会提供行包含错误值:[DJH3],mdb不会,只会提示字段值太小

  8. Oracle 经典语法(二)

    --提示:工资 = 薪金 + 佣金 1. 找出EMP表中的姓名(ENAME)第三个字母是A 的员工姓名.SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '__ ...

  9. 安装Laravel之坎坷记述

    写这篇文章记录以及分享我安装Laravel框架的一些经验 过程如下: 1.按照官方的描述,第一步是先安装composer来管理依赖=>composer下载传送门 下载之后点击安装,按照提示它需要 ...

  10. CF Two Buttons (BFS)

    Two Buttons time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...