黑马程序员 [email protected]和@synthesize

———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———

1、@property 和@synthesize 的作用

(1) 通过@property可以自动生成属性的set,get方法的声明部分

  生成的是set,get方法是哪个属性的,@property后面的名称就是属性去掉下划线后的部分

  例如:

  - (void)setName: (NSString *)name;

  - (NSString *)name;

这两行代码可以用 @property (NSString *)name; 来代替。即通过@property可以自动生成属性_name的set,get方法声明。

(2) 通过@synthesize可以自动生成属性的set,get方法的实现部分

  规则:要告诉@synthesize生成的set,get方法的实现部分是与声明当中哪一个@property相对应。要想得到_name属性,就要

再写=_name。

  例如: 

- (void)setName: (NSString *)name

  {

    _name = name;

  }

  - (NSString *)name

  {

    return _name;

  }

这几行代码可以用 @synthesize name = _name; 来代替,即通过@synthesize可以自动生成属性_name的set,get方法实现。

2、@property 和  @synthesize 的练习

Girl 类,属性:姓名、身高、体重

 1 #import <Foundation/Foundation.h>
 2 //声明
 3 @interface Girl : NSObject
 4 {
 5     NSString * _name;
 6     double _height;
 7     double _weight;
 8
 9 }
10 @property NSString *name;
11 @property double height;
12 @property double weight;
13 @end
14
15 //实现
16 @implementation Girl
17 @synthesize name = _name;
18 @synthesize height = _height;
19 @synthesize weight = _weight;
20 @end
21
22 int main()
23 {
24     Girl *girl1 = [Girl new];
25     girl1.name = @"玲玲";
26     girl1.height = 170.0;
27     girl1.weight = 50.0;
28     NSLog(@"女孩名字叫%@,身高:%.f,体重:%.f", girl1.name, girl1.height, girl1.weight);
29     return 0;
30 }
时间: 2024-10-13 16:19:42

黑马程序员 [email protected]和@synthesize的相关文章

黑马程序员[email&#160;protected]和@synsthesize的使用

一.@property和@synthesize的基本使用 @property :可以自动生成某个成员变量的setter和getter的声明(@property int age;).写在@interface里面: @synthesize :自动生成age的setter和getter,并且在方法内部访问的是_age这个成员变量(@synthesize age = _age; // 如果后面不写=_age默认就是访问age成员变量).写在@implementation里面: 二.@property和@

黑马程序员[email&#160;protected],@synthesize使用细节和id

一.@property和@synthesize 关键字以及使用细节 这两个关键字是编译器的特性,帮助我们有效的减少不必要代码的书写. 1.@property可以自动生成某个成员变量的setter和getter方法声明 1 #import <Foundation/Foundation.h> 2 3 @interface Person : NSObject 4 { 5 int _age; 6 // int age; 7 int _height; 8 double _weight; 9 NSStri

黑马程序员 [email&#160;protected]增强(神器)

———Java培训.Android培训.iOS培训..Net培训.期待与您交流! ——— 1.@property 增强的介绍 1> Xcode 4.4之后,@property 独揽了 @synthesize  的功能,也就是说@property可以同时生成sette和getter的声明和实现 2>默认情况下,setter 和 getter的实现中,会去访问下划线_开头的成员变量 例如: 1 #import <Foundation/Foundation.h> 2 @interface

黑马程序员[email&#160;protected]和ARC

@property和ARC @property和ARC都是编译器特性,系统会帮我们自动生成代码 property参数 1.set方法内存管理相关的参数 retain : release旧值,retain新值(适用于OC对象类型) assign : 直接赋值(默认,适用于非OC对象类型) copy   : release旧值,copy新值 2.是否要生成set方法 readwrite : 同时生成setter和getter的声明.实现(默认) readonly  : 只会生成getter的声明.实

黑马程序员_OC学习笔记之@property和@synthesize

[objc] view plaincopyprint? <span style="font-size:24px;">#import <Foundation/Foundation.h> @interface Person : NSObject { int _age; int age; int _height; int height; int _weight; int weight; int _money; int money; } @property int ag

黑马程序员_Objective C中的@property 与 @synthesize 快速生成setter getter方法

<a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>.<a href="http://www.itheima.com"target="blank">.Net培训</a>.期待与您交流! 一般来说在一个类中 成员变量是会有setter 跟getter方法的. 如果每一个成员变量的setter 跟gett

黑马程序员——oc语言学习心得—— 属性声明和赋值

黑马程序员——oc语言学习心得—— 属性声明和赋值 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,在oc中所有类继承与终极父类Object2,声明字符变量采用N是string  *_xxx 实例变量一般以下划线开头3,在oc中方法以+ -号区分 -号开头是实例方法或对象方法  +号开头是类方法  前置用对象调用 后者用类名调用4,在xcode4以后声明@property 不用在写@snysize  自动生成get.set方法5,属性

黑马程序员_API

------- android培训.java培训.期待与您交流! ---------- ======================API========================================= 看api的步骤: 1.看类的说明.其所属的包以及出现的版本. 2.看其构造函数. 3.看普通的方法.看时注意参数,和返回值类型. Object类 1. private static native void registerNatives (); 见到本地关键字修饰的方法,这个方

黑马程序员-面向对象-Object类

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>.<a href="http://edu.csdn.net"target="blank">.Net培训</a>.期待与您交流! ---------------------- 一.Object类中的equals(