第一個知識點:類的實現和類合成存取方法
</pre>存取方法:取值方法和設置方法<p></p><p>例一:</p><p>第一:演示自己寫讀取方法和設置方法</p><p></p><p style="margin-top:0px; margin-bottom:0px; font-size:18px; font-family:Menlo; color:rgb(130,46,14)">//接口文件</p><p style="margin-top:0px; margin-bottom:0px; font-size:18px; font-family:Menlo; color:rgb(130,46,14)"></p><pre name="code" class="objc">//
// Fraction.h
// 第一個類演示
//
// Created by smartlei on 15/5/20.
// Copyright (c) 2015年 smartlei. All rights reserved.
//
#ifndef _______Fraction_h
#define _______Fraction_h
#include <Foundation/foundation.h>
@interface Fraction : NSObject
-(void) printf;
-(void) setNumerator:(int) n;
-(void) setDenominator:(int) d;
-(int) numerator;
-(int) denominator;
-(double) converToNum;
@end
#endif
//實現文件
//
// Fraction.m
// 第一個類演示
//
// Created by smartlei on 15/5/20.
// Copyright (c) 2015年 smartlei. All rights reserved.
//
#import <Foundation/Foundation.h>
#include "Fraction.h"
@implementation Fraction
{
int numerator;
int denominator;
}
-(void) printf
{
NSLog(@"%i/%i",numerator,denominator);
}
-(void) setNumerator:(int)n
{
numerator =n;
}
-(void) setDenominator:(int)d
{
denominator =d;
}
-(int) numerator
{
return numerator;
}
-(int) denominator
{
return denominator;
}
-(double) converToNum
{
if(denominator!=0)
return (double) numerator/denominator;
else
return NAN;
}
@end
第二:系統自動生成取值方法和設置方法
接口文件
/
/
// Fraction.h
// 第一個類演示
//
// Created by smartlei on 15/5/20.
// Copyright (c) 2015年 smartlei. All rights reserved.
//
#ifndef _______Fraction_h
#define _______Fraction_h
@interface Fraction :NSObject
@property int numerator,denominator;//聲明屬性
-(void) printf;
-(double) convertToNum;
#endif
//
// Fraction.m
// 第一個類演示
//
// Created by smartlei on 15/5/20.
// Copyright (c) 2015年 smartlei. All rights reserved.
//
#import <Foundation/Foundation.h>
#include "Fraction.h"
@implementation Fraction
{
int numerator;
int denominator;
}
@synthesize numerator; //自動生成存取方法
@synthesize denominator;//自動生成存取方法
-(void) printf
{
NSLog(@"%i/%d",numerator,denominator);
}
-(double) convertToNum
{
if(numerator!=0)
return (double) numerator/denominator;
else
return MAN;
}
第二個知識點:關於訪問控制屬性說明
特別注意:下邊鎖引用的全是對象
- @property()裏邊的屬性
訪問控制: readwrite readonly
內存管理:assign 基本(默認) retain 對象 copy 實現NScopying
注意事項:
第一:這3個特性互斥
assign風格的賦值函數
這種特性通常用於標量屬性、委託以及不適合保留的其他類型的變量
-(void) setDenominator:(int *)d
{
denominator =d;
}
retain風格的賦值函數
只用於處理本身就是對象的數據程序,它指定在傳入到賦值函數的值賦給組員變量的同時向其發送一條保留消息
</pre><pre name="code" class="objc">-(void) setDenominator:(NSNumber *)d
{ [denominator autorelease];
denominator =[d retain];//向d發送一條保留信息
}
</pre><pre name="code" class="objc" style="color: rgb(70, 70, 70);">
copy風格的賦值函數
只用於處理本身就是對象的數據程序,它指定在傳入到賦值函數的值賦給組員變量複製到對象成員變量
-(void) setDenominator:(NSNumber *)d
{
[denominator autorelease];
denominator =[d copy];
}
線程安全:atomic nonatomic 非原子性
atomic 原子性的存取器函數
特點:原子性的存取器函數認爲是線程安全的
-(NSNumber *) numerator
{
[threadLock lock];
NSNumber *result=[[numerator retain] autorelease];
[threadLock unlock];
return result;
}
nonatomic 非原子的存取器函數
特點:非原子性的存取器函數不能認爲是線程安全的
-(NSNumber *) numerator
{
return [[numerator retain] autorelease];
}
關於self關鍵字說明
第三個知識點:關鍵字self的理解