OC实例变量和属性-@synthesize与@property
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相关推荐
- OC 实例变量(instance var)与属性(@property)的关系 isa指针
实例变量(instance var)与属性(@property)的关系 Objective-C 2.0之后,声明一个@property name自动产生一个实例变量,名为_name,因此省去实例变量和 ...
- iOS进阶之iOS中实例变量与属性的区别(7)
前言 在编写OC代码时,我们已经很熟练了使用@property关键字声明属性,以及如下声明实例变量: @interface MyViewController :UIViewController {NS ...
- 成员变量和属性区别(@property那点事儿)
历史由来: 接触iOS的人都知道,@property声明的属性默认会生成一个_类型的成员变量,同时也会生成setter/getter方法. 但这只是在iOS5之后,苹果推出的一个新机制.看老代码时, ...
- OC 成员变量和属性的区别 .
转自:http://blog.sina.com.cn/s/blog_727bd1560101llwj.html 比如下面这个程序,aboutList,和 otherList 到底有什么不同, @int ...
- python 类变量(属性)和实例变量(属性
DAY 4. 类变量(属性)和实例变量(属性) 类变量:在所有类的实例之间都可以共享的变量,类变量在所有对象间只保留一份 在类体中定义 类的所有实例对象都可以访问类变量 类变量只能由类修改,实例对象只 ...
- oc 实例变量可见度、方法
为什么80%的码农都做不了架构师?>>> ⼀.实例变量可⻅度 @public 在类的外部和内部均可访问 @protected(默认) 只 ...
- Python类属性与实例变量
概念 类像一个饼干模板,用这个模板我们可以制作出各种各样的饼干(实例) 类属性是是该类所有实例对象共享的属性 实例变量是每个实例独有的数据 class Box:unit = 1def __init__ ...
- python 类可以调用实例变量_Python实例方法、类方法、静态方法区别详解
1.关于参数的区别 实例方法:定义实例方法是最少有一个形参 ---> 实例对象,通常用 self 类方法:定义类方法的时候最少有一个形参 ---> 类对象,通常用 cls 静态方法:定义静 ...
- 属性详解(@property/@dynamic/@synthesize)
上一篇文章讲到, OC 2.0之后属性一旦声明,如果没有readonly修饰的话,当前类自动生成了setter和getter方法的声明, 并且会自动生成对应的实例变量(下划线 + 属性名).而sett ...
最新文章
- 疫情之下,“无接触”生意火了
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)...
- http压缩方法(IIS 6.0 与IIS 7.0的详解)
- arcmap创建空间索引_mysql搜索引擎你会用了么
- epoll机制:epoll_create、epoll_ctl、epoll_wait、close
- [PAT乙级]1032 挖掘机技术哪家强
- Spring 由构造函数自动装配
- 【转】什么是磁珠(Ferrite Bead 即 FB)
- vc++ 类 定时器api_关于JS中一些重要的api实现, 巩固你的原生JS功底
- 移动硬盘驱动器读到,但不显示盘符
- 强驴分享北京最好玩儿的隐秘旅游地
- 阿里云服务器ECS操作系统有哪些版本?
- 树莓派之安装Vulkan
- 汉语拼音文件搜索项目
- 面经:计算机视觉工程师(字节跳动-飞书部门)
- 基于JAVA的企业信息员工管理系统的设计与实现(附:源码 论文 sql文件)
- java 关机命令_linux 关机命令shutdown
- java获取视频时长
- @所有人,官网下载的微信小程序开发工具安装后黑屏咋办?
- linux日志记录分析,linux日志朔源分析记录
热门文章
- java8新特性学习笔记链接
- django 整理一
- JavaSE_坚持读源码_ClassLoader对象_Java1.7
- 在linux下给grep命令添加颜色
- 基于mjpg-streamer网络视频服务器移植
- C# 手动读写app config 的源码
- 接口请求,上传byte数组byte[]数据异常,负数变正数/负数变63
- Linux下undefined reference to ‘pthread_create’问题解决 zz
- Centos6 升级glibc-2.17,解决Requires: libc.so.6(GLIBC_2.14)(64bit)错误解决方法
- Spark应用程序第三方jar文件依赖解决方案