//
// 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