Student.h

 1 #import <Foundation/Foundation.h>
 2
 3 @interface Student : NSObject
 4 {
 5     // 实例变量命名 以 _开头,和系统命名规范一致;
 6
 7     //1:public的实例变量可以用 -> 方式访问;
 8 @public
 9     NSString *_publicName;
10     //2:默认为protected 权限;子类可以继承;
11 @protected
12     NSString *_protectedName;
13
14     //4:@property 使用系统 会加 _的实例变量,如果不加;
15     float number; //这是一个实例变量  和系统 加的 _bumber是两个;用@synthesize number 把系统加的 _的 等于 当前的 number;
16 }
17
18     //3:只写一个 @property age;默认加上 getter,setter方法 和一个 实例变量 _age;
19 @property(nonatomic,readwrite,assign)int age;   //相当于加setter , getter , 并加实例变量 _age;
20
21
22     //4:@property 与 @synthesize;
23 @property(nonatomic,readwrite,assign)float number;
24
25
26 - (void)sayHello;
27 @end

View Code

Student.m

#import "Student.h"@implementation Student//4:@property 是方法的声明,@synthesize 是方法的实现;
@synthesize number; //默认加的 _number实例变量会没有;变成了number;//@synthesize number = _number; //默认加的 _number实例变量存在;- (void)sayHello
{_protectedName = @"小明";NSLog(@"%@ hello",_protectedName);}

View Code

main.m

 1 #import <Foundation/Foundation.h>
 2 #import "Student.h"
 3
 4 int main(int argc, const char * argv[])
 5 {
 6
 7     Student *student = [[Student alloc]init];
 8
 9     //1:实例变量 public 权限的可以用 -> 方法;
10     student->_publicName = @"Steven";
11     NSLog(@"%@",student->_publicName);
12
13     //2:实例变量 protected,private只能在类内部使用;
14     [student sayHello];
15
16     //3:@property 属性 相当于定义了 getter,setter方法,就可以用对象在外部调用了;
17     student.age = 18;
18     NSLog(@"%d",student.age);
19
20     //4: @property 是方法的声明,@synthesize 是方法的实现;
21     student.number = 1001;
22     NSLog(@"%f",student.number);
23
24     [student release];
25
26
27
28     return 0;
29 }

View Code

转载于:https://www.cnblogs.com/cocoajin/archive/2013/05/16/3081683.html

OC实例变量和属性-@synthesize与@property相关推荐

  1. OC 实例变量(instance var)与属性(@property)的关系 isa指针

    实例变量(instance var)与属性(@property)的关系 Objective-C 2.0之后,声明一个@property name自动产生一个实例变量,名为_name,因此省去实例变量和 ...

  2. iOS进阶之iOS中实例变量与属性的区别(7)

    前言 在编写OC代码时,我们已经很熟练了使用@property关键字声明属性,以及如下声明实例变量: @interface MyViewController :UIViewController {NS ...

  3. 成员变量和属性区别(@property那点事儿)

    历史由来: 接触iOS的人都知道,@property声明的属性默认会生成一个_类型的成员变量,同时也会生成setter/getter方法.  但这只是在iOS5之后,苹果推出的一个新机制.看老代码时, ...

  4. OC 成员变量和属性的区别 .

    转自:http://blog.sina.com.cn/s/blog_727bd1560101llwj.html 比如下面这个程序,aboutList,和 otherList 到底有什么不同, @int ...

  5. python 类变量(属性)和实例变量(属性

    DAY 4. 类变量(属性)和实例变量(属性) 类变量:在所有类的实例之间都可以共享的变量,类变量在所有对象间只保留一份 在类体中定义 类的所有实例对象都可以访问类变量 类变量只能由类修改,实例对象只 ...

  6. oc 实例变量可见度、方法

    为什么80%的码农都做不了架构师?>>>    ⼀.实例变量可⻅度 @public                   在类的外部和内部均可访问 @protected(默认)   只 ...

  7. Python类属性与实例变量

    概念 类像一个饼干模板,用这个模板我们可以制作出各种各样的饼干(实例) 类属性是是该类所有实例对象共享的属性 实例变量是每个实例独有的数据 class Box:unit = 1def __init__ ...

  8. python 类可以调用实例变量_Python实例方法、类方法、静态方法区别详解

    1.关于参数的区别 实例方法:定义实例方法是最少有一个形参 ---> 实例对象,通常用 self 类方法:定义类方法的时候最少有一个形参 ---> 类对象,通常用 cls 静态方法:定义静 ...

  9. 属性详解(@property/@dynamic/@synthesize)

    上一篇文章讲到, OC 2.0之后属性一旦声明,如果没有readonly修饰的话,当前类自动生成了setter和getter方法的声明, 并且会自动生成对应的实例变量(下划线 + 属性名).而sett ...

最新文章

  1. 疫情之下,“无接触”生意火了
  2. IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)...
  3. http压缩方法(IIS 6.0 与IIS 7.0的详解)
  4. arcmap创建空间索引_mysql搜索引擎你会用了么
  5. epoll机制:epoll_create、epoll_ctl、epoll_wait、close
  6. [PAT乙级]1032 挖掘机技术哪家强
  7. Spring 由构造函数自动装配
  8. 【转】什么是磁珠(Ferrite Bead 即 FB)
  9. vc++ 类 定时器api_关于JS中一些重要的api实现, 巩固你的原生JS功底
  10. 移动硬盘驱动器读到,但不显示盘符
  11. 强驴分享北京最好玩儿的隐秘旅游地
  12. 阿里云服务器ECS操作系统有哪些版本?
  13. 树莓派之安装Vulkan
  14. 汉语拼音文件搜索项目
  15. 面经:计算机视觉工程师(字节跳动-飞书部门)
  16. 基于JAVA的企业信息员工管理系统的设计与实现(附:源码 论文 sql文件)
  17. java 关机命令_linux 关机命令shutdown
  18. java获取视频时长
  19. @所有人,官网下载的微信小程序开发工具安装后黑屏咋办?
  20. linux日志记录分析,linux日志朔源分析记录

热门文章

  1. java8新特性学习笔记链接
  2. django 整理一
  3. JavaSE_坚持读源码_ClassLoader对象_Java1.7
  4. 在linux下给grep命令添加颜色
  5. 基于mjpg-streamer网络视频服务器移植
  6. C# 手动读写app config 的源码
  7. 接口请求,上传byte数组byte[]数据异常,负数变正数/负数变63
  8. Linux下undefined reference to ‘pthread_create’问题解决 zz
  9. Centos6 升级glibc-2.17,解决Requires: libc.so.6(GLIBC_2.14)(64bit)错误解决方法
  10. Spark应用程序第三方jar文件依赖解决方案