objective-c 變量和方法,看這一篇文章就差不多了

//
//  MyTest.h
//  eliteEnglishIPhone
//
//  Created by jelly on 2020/2/23.
//  Copyright © 2020 jelly. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface MyTest : NSObject
//--------------- area1 變量聲明區域 ---------------
//一般也不這樣寫,麻煩
//對外開放的實例變量,直接用 area2替代
//私有實例變量 則在 @implementation 上面(靜態變量) 或 下面(非靜態變量) 來聲明
{
    @private
    NSString *pri;
    @public
    NSString *pub;
}

//--------------- area2 變量聲明區域 ---------------
//注意,objective-c 中的屬性 實質就是方法,是方便不再手寫 getter 和 setter 方法
//和 java 裏的屬性不是一個意思,在 java 裏,屬性=成員變量=實例變量

//對內可用,同時對外開放,這樣聲明就行了,xcode 會自動幫我們做3件事:
//同時在 xx.m 中就可以省略 @synthesize 和 @dynamic,這是 xcode 編譯器增強後,給開發者帶來的的便利性
//1,變量聲明
//2,變量對應的 getter 和 setter 方法聲明
//3,變量對應的 getter 和 setter 方法實現
@property NSString *name;
@property int age;

//--------------- area3 方法聲明區域 ---------------
//聲明實例方法,必須先創建類的實例,再調用,實例.實例方法()
-(void)instanceMethod;
//聲明類方法,不用創建實例,可以直接用 類名.類方法() 調用
+(void)classMethod;
@end

NS_ASSUME_NONNULL_END

 

 

 

//
//  MyTest.m
//  eliteEnglishIPhone
//
//  Created by jelly on 2020/2/23.
//  Copyright © 2020 jelly. All rights reserved.
//

#import "MyTest.h"

//--------------- area1 static 實例變量聲明區域 ---------------
//凡是在 @implementation 外聲明的變量,都是靜態變量,加不加 static 一樣
//下面的 +(void)test() 證明了我們所說的
NSString *face1;
static NSString *face2;

@implementation MyTest
//--------------- area1 實例變量聲明區域 ---------------
{
    //在這裏聲明的都是,實例變量=成員變量
    NSString *book;
    NSString *money;
}

//在這裏聲明的都是,實例變量=成員變量
NSString *toy;

//--------------- area2 方法聲明區域(實例方法或類方法) ---------------
//實例方法
-(void)instanceMethod{
    
}

//類方法
+(void)classMethod{
    
}

+(void)test{
    face1 = @"face1";
    face2 = @"face2";
}
@end

 

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