IOS第三天(@property与@synthesize的用法)

一、@property与@synthesize基本规范用法

  [email protected]

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

#import <Foundation/Foundation.h>

@interface Student : NSObject {
    int _age;
    int _no;
    float _height;
}

// 当编译器遇到@property时,会自动展开成getter和setter的声明
@property int age;
//- (void)setAge:(int)newAge;
//- (int)age;

@property int no;
//- (void)setNo:(int)newNo;
//- (int)no;

@property float height;
//- (void)setHeight:(float)newHeight;
//- (float)height;

- (void)test;
@end

  [email protected]

  @synthesize会自动生成getter和setter的实现

#import "Student.h"

@implementation Student

// @synthesize age, height, no;

// @synthesize会自动生成getter和setter的实现

// @synthesize默认会去访问跟age同名的变量
// 如果找不到同名的变量,会自动生成一个私有的同名变量age
// @synthesize age;

// age = _age代表getter和setter会去访问_age这个成员变量
@synthesize age = _age;
//- (void)setAge:(int)newAge {
//    _age = newAge;
//}
//
//- (int)age {
//    return _age;
//}

@synthesize height = _height;
//- (void)setHeight:(float)newHeight {
//    _height = newHeight;
//}
//
//- (float)height {
//    return _height;
//}

@synthesize no = _no;
//- (void)setNo:(int)newNo {
//    _no = newNo;
//}
//
//- (int)no {
//    return _no;
//}

- (void)test {

    _age = 10;

    _height = 10.0f;

    _no = 10;

}
@end

二、@property与@synthesize进阶用法

  Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject {
    int _ID;
    float _weight;
}

@property int ID;

@property float weight;

@end

  

  Person.m

#import "Person.h"

@implementation Person

@synthesize ID = _ID;
@synthesize weight = _weight;

//- (void)setWeight:(float)weight {
//    _weight = weight * 1000;
//}

//- (float)weight {
//    return _weight * 1000;
//}
@end

三、@property与@synthesize终极用法

  Teacher.h

#import <Foundation/Foundation.h>

@interface Teacher : NSObject

@property int age;
@end

  Teacher.m

#import "Teacher.h"

@implementation Teacher

// 在xcode4.5的环境下,可以省略@synthesize,并且默认会去访问_age这个成员变量
// 如果找不到_age这个成员变量,会自动生成一个叫做_age的私有成员变量

-(void)test {

    _age = 10;
}
@end
时间: 2024-10-11 20:28:46

IOS第三天(@property与@synthesize的用法)的相关文章

黑马程序员------OC之点语法、成员变量作用域、@property和@synthesize

-----iOS培训.Android培训.Java培训,期待与您交流----- OC之点语法.成员变量作用域.@property和@synthesize 一.点语法 1)点语法基本概念:当我们使用面向对象的封装特性后,将成员变量私有化,采取使用setter方法和getter方法向外面提供成员变量访问方案.那么我们知道,OC的调用方法的方式是很独特的,采用的是 [对象名(类名)  方法名]  的方式 ,那么很多Java.C#程序员就不习惯了,在Java.C#这些主流的面向对象语言中,调用方法的方式

黑 马 程 序 员_视频学习总结&lt;Objective-C&gt;----03 self、NSString、@property和@synthesize、id

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 一.self 1.谁调用了当前方法,self就代表谁.两种情况:self出现在对象方法里,self就代表对象:self出现在类方法里,self就代表类. 2.对象方法利用“self→成员变量名”访问当前对象内部成员变量. 3.[self 方法名]可以调用其它对象方法.类方法. 二.NSString 1.NSString简介:NSString是一

(iOS)关于@property和@synthesize的理解(原创)

开始学习ios的时候,就对一些objc的语法不理解,就比如@property和@synthesize,之前都是记住然后照着用,但是写的代码多了,对objc和ios有了一些理解,再加上最近用MRC,所以在各种内存检测和变量使用的过程中,探讨了一下,最终对它们的作用有了一定了解. 一般@property和@synthesize是搭配使用的,用@property声明的变量,系统默认给他们做了setter和getter处理. property可以声明属性的各种属性. 1.声明属性的访问方法: gette

黑马程序员---Objective-C基础学习---编译器特性@property和@synthesize

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 编译器特性@property和@synthesize 1.@property @property可以自动生成某个成员变量的setter和getter声明. 新建一个项目,添加Person类. Person.h // // Person.h // zijia // // Created by zou on 5/10/15. // Copyright (c) 2015 __MyCompanyNam

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

@代表“Objective-C”的标志,证明您正在使用Objective-C语言 Objective-C语言关键词,@property与@synthesize配对使用. 功能:让编译好器自动编写一个与数据成员同名的方法声明来省去读写方法的声明. 如: 1.在头文件中: C代码   @property int count; 等效于在头文件中声明2个方法: C代码   - (int)count; -(void)setCount:(int)newCount; 2.实现文件(.m)中 C代码   @sy

@property、@synthesize和dynamic的用法

原文:  http://blog.csdn.net/hherima/article/details/8622948 @代表“Objective-C”的标志,证明您正在使用Objective-C语言 Objective-C语言关键词,@property与@synthesize配对使用. 功能:让编译器自动编写一个与数据成员同名的方法声明来省去读写方法的声明. 如: 1.在头文件中: @property int count; 等效于在头文件中声明2个方法,即通常说的GetXXX  SetXXX. -

@synthesize obj=_obj的意义详解 @property和@synthesize

本文转载至 http://blog.csdn.net/ztp800201/article/details/9231969 http://hi.baidu.com/feng20068123/item/ca8952fa661e5342932af2c2 写的非常不错,攒一个!!!! 我们在进行iOS开发时,经常会在类的声明部分看见类似于@synthesize window=_window; 的语句,那么,这个window是什么,_ window又是什么,两个东西分别怎么用,这是一个比较基本的问题,也关

黑马程序员---OC---点语法、属性作用域、@property与@synthesize、id、构造方法、分类

------iOS培训.Java培训.Android培训, iOS学习型技术博客,期待与您交流------                                    点语法 点语法的本质是方法调用:调用对象成员变量的setter和getter 是编译器特性,编译器帮忙转的 p.age = 25;       // 等价于 [p setAge:25]; int a = p.age;     // 等价于 int a = [p age]; // 访问成员变量不能用点语法,而是 p->_a

Objective-C入门教程03:属性(@property和@synthesize)

在Java中,特别是一个标准的POJO类,我们定义了一些属性,然后针对每个属性生成相应的getter和setter.例如: package com.demo; /** * 手机类 * @author liuzc */ public class Phone { private String color; //颜色 private String os; //系统 private String brand; //品牌 /******* Getter & Setter *******/ public S