//main函式
//// main.m
// noteoc-05-屬性建構函式
//// created by 劉佳斌 on 15/11/23.
///*
屬性:某種事物的特徵
setter:設定者
- (void)setname:(nsstring *)name;
getter:獲取者
-(nsstring *)name;
setter:公式:
-(void)set屬性名:(屬性型別)形參名;
getter:公式
-(屬性型別)屬性名;
點語法(.)又叫屬性,可以通過 . 給屬性賦值 取值
屬性公式:
在.h檔案中 @property 屬性的型別 屬性名
以前的時候 需要在.m檔案中寫上@synthesize
@property 表示宣告屬性方法
@synthesize 表示實現屬性方法
現在@synthesize既包含宣告,也包含實現
構造方法:又叫init方法,用來建立乙個物件
自定義構造方法:
1.公式:
-(id)initwith要初始的變數名:(資料型別)形參名
return self;
} 2.本質:就是乙個有引數有返回值的方法,但是自定義建構函式有特殊意思,表示是建立乙個物件的方法
標示它有特殊意義的符號
(1)方法名 必須用initwith作為方法的開頭,並且w大寫
(2)方法實現的公式
self = [super init];
if (self)
return self;
注意:1.initwith的w必須大寫
2.自定義構造方法要在.h中宣告
?為什麼要使用屬性 自定義構造方法
目的都是為了傳值
只要是正向傳值,屬性隨時都可以使用
自定義構造方法也是正向傳值,但只能在初始化的時候使用
***** 變數名不能重名 方法名也不能重名
*/#import #import "hero.h"
#import "hua.h"
int main(int argc, const char * argv) ,@,@];
nsmutablearray *flowers = [nsmutablearray array];
for (nsdictionary *info in flowerdatas)
nsarray *changeprice = @[@15,@5000,@300];
for (int i=0;i@"情人節%@ 賣%d",flower.name,flower.price);
}*/ nsarray *huadatas = @[@,@,@];
nsmutablearray *huas = [nsmutablearray alloc];
for (nsdictionary *info in huadatas)
}return
0;}
//hua類
//.h檔案
//// hua.h
// noteoc-05-屬性建構函式
//// created by 劉佳斌 on 15/11/23.
//#import
@inte***ce
hua : nsobject
@property
nsstring *name;
@property
nsstring *color;
@property
int price;
@property
nsstring *smell;
- (instancetype)initwithname:(nsstring *)name andcolor:(nsstring *)color andprice:(int)price andsmell:(nsstring *)smell;
@end
//.m檔案
//// hua.m
// noteoc-05-屬性建構函式
//// created by 劉佳斌 on 15/11/23.
//#import "hua.h"
@implementation
hua- (instancetype)initwithname:(nsstring *)name andcolor:(nsstring *)color andprice:(int)price andsmell:(nsstring *)smell
return
self;
}@end
//hero類
//.h檔案
//// hero.h
// noteoc-05-屬性建構函式
//// created by 劉佳斌 on 15/11/23.
//#import
@inte***ce
hero : nsobject
/*// 名字 攻擊力 血量 防禦力
-(void)setname:(nsstring *)name;
-(nsstring *)name;
-(void)setpower:(int)power;
-(int)power;
-(void)setblood:(int)blood;
-(int)blood;
-(void)setdef:(int)def;
-(int)def;
*/@property
nsstring *name; //等同於上邊set get方法
@property
int power;
@property
int blood;
@property
int def;
- (instancetype)initwithpower:(int)power;
- (instancetype)initwithname:(nsstring *)name andpower:(int)power andblood:(int)blood anddef:(int)def;
@end
//.m檔案
//// hero.m
// noteoc-05-屬性建構函式
//// created by 劉佳斌 on 15/11/23.
//#import "hero.h"
@implementation
hero
//系統的構造方法
/* 1.self是自己的意思 用來替代初始化出來的物件
2.super是超級的意思 表示父類
3.id 表示乙個泛型 只要是object型別都可以用id替代
instancetype與id等價 但instancetype只限於建構函式
*/-(id)init
return
self;
}- (instancetype)initwithpower:(int)power
return
self;
}- (instancetype)initwithname:(nsstring *)name andpower:(int)power andblood:(int)blood anddef:(int)def
return
self;}/*
-(void)setname:(nsstring *)name
-(nsstring *)name
-(void)setpower:(int)power
-(int)power
-(void)setblood:(int)blood
-(int)blood
-(void)setdef:(int)def
-(int)def
*/@end
C 字段屬性and建構函式
欄位和屬性 1 通常字段修飾符為private,屬性修飾符為public.2 字段 a.欄位又稱為 成員變數 一般在類的內部做資料互動使用。b.欄位命名規範 camel命名法 首單詞字母小寫 舉個例子 在建築中,你的房子裡面的東西一般都是私有的,屬於你個人的。所有欄位的修飾符是private修飾。3...
C 基礎 屬性 建構函式 靜態建構函式 析構函式
一 屬性 屬性是度字段的擴充套件,根據物件導向的基本思想,字段最好設定為private,因為這樣可以防止客戶端直接對欄位進行修改,從而保證內部成員的完整性。通過屬性來訪問字段,避免了呼叫方法。當屬性僅含有get訪問器或set訪問器為private級別時,這樣是屬性就是制度實行,反之就是只寫屬性。屬性...
C 的引用 屬性 建構函式
引用 c 的引用類似於c語言的指標。如 class person person p1,p2 此表示式執行後,系統只是分配了兩個位址來存放這兩個類變數名,並沒有分配長度為int string大小的空間 p1 new person p1.age 10 此兩式執行後系統分配了記憶體用以儲存p1.age和p...