Objective-C入門06:屬性
// 屬性是描述類的特徵
// 存在的目的: 賦值 取值
在main函數裏面
#import "Hero.h"
#import <Foundation/Foundation.h>
#import "Hero2.h"
int main(int argc,const char * argv[]) {
@autoreleasepool {
// 不管存取值都用 .來存取;
Hero2 * kaTe = [ [Hero2 alloc ] init ];
kaTe.blood = 1000 ;
NSLog( @"卡特的血量是:%d" , kaTe.blood ) ;
kaTe.name =@"卡特" ;
NSLog( @"卡特的名字是:%@", kaTe.name ) ;
kaTe.lv=1;
Hero * jianSheng = [ [Heroalloc ] init ] ;
// setter 方法 是位內部變量設置一個 賦值的
[ jianSheng setLv : 20] ;
// getter 方法 取值的
NSLog( @" 英雄的等級 : %ld " , [ jianSheng lv ] ) ;
不用傳參的 有返回值的函數
- ( 返回值類型 )函數名
{
renturn 返回值;
}
有返回值的函數的意義: 有返回值函數 就相當與是 返回值類型的一個實際的值
- ( int )aa
{
renturn 15 ;
}
aa這個函數就是 15這個 int 類型的數字
需要傳參的 有返回值的函數
- ( 返回值類型 )函數名:(參數類型)參數名
函數名:(參數類型)參數名
{
renturn 返回值;
}
- ( int ) sumWithA :(int)a
bb :(int)b
{
renturn 返回值;
}
}
return 0;
}
在Hero.h裏面
#import <Foundation/Foundation.h>
@interface Hero : NSObject
{
NSInteger _lv ;
}
- (void )setLv : (NSUInteger)lv;
- (NSInteger )lv ;
@end
在Hero.m裏面
#import "Hero.h"
@implementation Hero
- (void )setLv : (NSUInteger)lv
{
_lv = lv;
NSLog(@"英雄的等級 : %ld" , _lv );
}
- ( NSInteger )lv
{
return _lv ;
}
@end
在Hero2.h裏面
#import <Foundation/Foundation.h>
@interface Hero2 : NSObject
/*
{
int _blood;
}
// 帶參的函數 是希望從外部類得到一個參數
//settter方法是爲了從外部類得到一個參數,賦值給內部變量 _blood(寫入數值)
//如果寫的時setter方法,函數名必須用set開頭,後面必須有參數,系統纔回認爲它是一個setter函數。
// 公式 - (void)set變量名(首字母大寫) : (變量的參數類型 )參數名;
- (void)setBlood : ( int )newBlood ;
//什麼時候用返回值的函數?需要給別人一個東西的時候 就用有返回值的函數 這個有返回值的函數返回值類型是什麼類型函數就可以做一個返回值類型的變量
//getter方法存在的意義 是爲了取值(讀取)
//getter方法的書寫規範:函數名必須是內部變量的名字
// 公式 - (返回值類型 )需要訪問的變量的變量名;
- ( int )blood;
*/
//@propertyt 幫咱們聲明瞭 setter、getter 方法
@property int blood ;
@propertyNSString * name ;
@property int lv ;
在Hero2.m裏面
#import "Hero2.h"
@implementation Hero2
/*
- (void)setBlood : ( int )newBlood
{
// 把從外部類傳過來的值,賦值給內部變量
_blood = newBlood ;
NSLog( @"%d" , _blood ) ;
}
// getter 讀取
- ( int )blood
{
// 爲了把內部類的變量給調用的地方
return _blood ;
}
*/
// @synthesize 幫我咱們實現了 setter、getter 方法
//@synthesize blood ; 這句話也可以不用了
@end