Objective-C入門06:屬性

 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 :(inta

                            bb :(intb

     {

      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  幫咱們聲明瞭  settergetter 方法

@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   幫我咱們實現了  settergetter 方法

//@synthesize blood ;   這句話也可以不用了

@end




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章