`
JavaZhuang
  • 浏览: 10298 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

4.2OC8-@property和synthesize

    博客分类:
  • IOS
 
阅读更多

4.2OC8-@property和synthesize

 

例一:

-------------main.m-----------------

//

//  main.m

//  构造方法

//

//  Created by liuyes on 13-12-8.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import <Foundation/Foundation.h>

#import "Student.h"

 

int main(int argc, const char * argv[])

{

 

    @autoreleasepool {

 

        Student *stu = [[Student alloc] init];

        stu.age = 29;

        int age = stu.age;

        

        NSLog(@"age is %i", age);

        [stu release];

    }

    return 0;

}

 

-------------Student.h-----------------

 

//  Student.h

//  构造方法

//

//  Created by liuyes on 13-12-8.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import <Foundation/Foundation.h>

 

@interface Student : NSObject{

    //默认是@protected

    int age;

    int no;

    float height;

    

}

 

//当编译器遇到@property时,会自动展开成getter和setter的声明

//- (void)setAge:(int)age;

//- (int)age;

@propertyint age;

 

@propertyint no;

 

@propertyfloat height;

 

@end

 

-------------Student.m-----------------

//

//  Student.m

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import "Student.h"

 

@implementation Student

 

@synthesize age;

@synthesize no;

@synthesize height;

 

@end

 

 

 

例二:

-------------main.m-----------------

 //

//  main.m

//  构造方法

//

//  Created by liuyes on 13-12-8.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import <Foundation/Foundation.h>

#import "Student.h"

 

int main(int argc, const char * argv[])

{

 

    @autoreleasepool {

 

        Student *stu = [[Student alloc] init];

        stu.age = 29;

        int age = stu.age;

        

        NSLog(@"age is %i", age);

        [stu release];

    }

    return 0;

}

 

-------------Student.h-----------------

 

 

//  Student.h

//  构造方法

//

//  Created by liuyes on 13-12-8.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import <Foundation/Foundation.h>

 

@interface Student : NSObject{

    //默认是@protected

    int _age;

    int _no;

    float _height;

    

}

 

//当编译器遇到@property时,会自动展开成getter和setter的声明

//- (void)setAge:(int)age;

//- (int)age;

@propertyint age;

 

@propertyint no;

 

@propertyfloat height;

 

@end

 
 

-------------Student.m-----------------

 //

//  Student.m

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import "Student.h"

 

@implementation Student

 

@synthesize age = _age;

@synthesize no = _no;

@synthesize height = _height;

 

@end

 

  

例三:

-------------main.m-----------------

 

-------------Student.h-----------------

 

-------------Student.m-----------------

 

分享到:
评论

相关推荐

    Objective-C中的@property和@synthesize用法详解

    相信每个初学者对@property和@synthesize都感到非常的陌生,在此给大家分享下我的自己的理解,有不当之处,还望多多指教。详细说明文章在下面连接http://blog.csdn.net/comeontom/article/details/7455459

    iOS开发中属性 property 和 synthesize 详解

    ### iOS开发中属性property和synthesize详解 #### 一、引言 在iOS开发过程中,`@property` 和 `@synthesize` 是两个非常重要的概念。它们不仅简化了代码编写过程,提高了开发效率,还增强了程序的可维护性。本文将...

    OC-模型的Setter,Getter的由来,@property的由来

    @property还可以与@synthesize关键字一起使用,但现代的Xcode版本默认已经为@property声明的属性自动生成了对应的实例变量和存取方法,所以我们通常不再需要显式地使用@synthesize。 此外,@property还支持更多的...

    举例讲解Objective-C中@property属性的用法

    在Objective-C中,`@property` 是一种声明属性的关键字,它允许你在类接口中定义对象的特性,如...理解`@property` 和`@synthesize` 是学习Objective-C的重要部分,因为它们极大地简化了对象属性的管理和内存管理。

    IOS开发之@property的详细介绍

    在iOS开发中,`@property` 是Objective-C中的一个关键字,用于声明类的实例变量(ivar)并自动合成存取方法(setter和getter)。通过使用`@property`,开发者可以方便地控制实例变量的访问权限、内存管理策略、线程...

    Objective-c解析XML封装

    @property (nonatomic, retain) NSMutableString *currentResult; @property (nonatomic, retain) NSMutableDictionary *map; @property (nonatomic, retain) NSMutableArray *list; -(NSMutableDictionary *)...

    Objective-C Cheatsheet

    - @synthesize关键字用于手动合成属性的getter和setter方法。 - 使用点语法(self.propertyName)可以调用setter/getter方法,而直接使用实例变量则跳过这些方法。 7. 自定义初始化方法: - @interface中可以...

    iOS基础知识之@property 和 Ivar 的区别

    在iOS开发中,了解`@property`和`ivar`的区别是非常基础且重要的。`@property`和`ivar`都是Objective-C中用于管理类实例变量的方式,但它们在使用上有所差异,提供了不同的功能和灵活性。 首先,`ivar`(实例变量)...

    OC封装继承多态演示

    在OC中,我们可以使用`@interface`和`@implementation`来定义和实现类,通过`@property`来声明属性,并使用方法来访问和修改这些属性。例如: ```objc @interface Person : NSObject { NSString *name; NSInteger...

    objective-c基础知识

    6. @property 和 @synthesize: - `@property` 是 Objective-C 的属性声明,它提供了自动内存管理、存取方法等特性。 - `@synthesize` 通常与 `@property` 一起使用,用于自动生成存取方法的实现。 7. categories...

    Objective-C培训资料

    @synthesize property; @end ``` ##### 2.3 内存管理 - **引用计数**: Objective-C使用引用计数来进行内存管理。 - ** autorelease**: 对象会在适当的时候自动释放。 ```objective-c ClassName *object = [[...

    OC 协议(取值)Demol.zip

    "OC 协议(取值)"这个主题很可能指的是Objective-C中的协议(Protocol)特性和其与属性(Property)取值相关的概念。下面我们将深入探讨这两个核心知识点。 首先,我们来理解Objective-C中的“协议”。协议是...

    oc基础教程全集

    - **变量声明**:OC中使用`@property`和`@synthesize`来声明和实现属性。 ### 第四章:点语法与括号语法 - **点语法**:OC允许使用`.`操作符访问对象的属性和方法,如`obj.property`。 - **括号语法**:传统方法...

    【无限互联】iOS开发视频教程课件第1、2章OC基础语法源代码

    - `@property`定义属性,`@synthesize`自动生成getter和setter方法。 - `@protocol`定义协议,允许类之间约定需要实现的方法。 5. **块(Block)**: - OC中的块是一种内联函数,可以捕获并存储其所在作用域内的...

    ios_assign,retain和copy详解

    在iOS开发中,Objective-C语言提供了@property关键字来声明属性,并且可以在属性声明时指定不同的内存管理行为,主要涉及到assign、retain和copy这三个关键字。为了深入理解这三者的区别,首先需要了解Objective-C的...

    Python库 | synthesize-0.0.1-py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:synthesize-0.0.1-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    oc学习资料

    - **Property Declarations**:OC 的属性特性,如 `@property` 和 `@synthesize`,用于封装数据并提供存取方法。 - **Composition**:通过组合多个对象来构建复杂对象,是 OC 中实现 "has a" 关系的重要手段。 ### ...

    IOS开发中的OC

    `@property`关键字用于声明属性,`@synthesize`则自动生成getter和setter方法。 OC的另一个核心特性是消息传递。当我们调用一个方法时,实际上是向对象发送一条消息。例如,`[myObject sayHello];`就向`myObject`...

Global site tag (gtag.js) - Google Analytics