[1]getter/setter소스
// Dog.h
#import <Foundation/Foundation.h>
@interface Dog : NSObject
{
int age;
}
-(void)setAge:(int)a;
-(int)getAge;
-(void)Show;
@end
#import "Dog.h"
@implementation Dog
-(void)setAge:(int)a{
age=a;
}
-(int)getAge{
return age;
}
-(void)Show{
NSLog(@"%d\n",age);
}
@end
#import <Foundation/Foundation.h>
#import "Dog.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
Dog *happy=[[Dog alloc] init];
[happy setAge:5];
NSLog(@"해피의 나이는 =%d",[happy getAge]);
[happy setAge:2];
NSLog(@"해피의 나이는 =%d",[happy getAge]);
[happy Show];
}
return 0;
}
[2]getter이름 변경
// Dog.h
#import <Foundation/Foundation.h>
@interface Dog : NSObject
{
int age;
}
-(void)setAge:(int)a;
-(int)age; // Objective-C는 getter의 이름에 get을 붙이지 않음 인스턴스변수와 혼란 주의
-(void)Show;
@end
// Dog.m
#import "Dog.h"
@implementation Dog
-(void)setAge:(int)a{
age=a;
}
-(int)age{
return age;
}
-(void)Show{
NSLog(@"%d",age);
}
@end
// main.m
#import <Foundation/Foundation.h>
#import "Dog.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
Dog *happy=[[Dog alloc] init]; //
[happy setAge:5]; //
NSLog(@"해피의 나이는 =%d",[happy age]);// 인스턴스변수와 혼동 주의
[happy setAge:2]; //
NSLog(@"해피의 나이는 =%d",[happy age]);//
[happy Show]; //
}
return 0;
}
[3]property, synthesize 소스
// Dog.h
#import <Foundation/Foundation.h>
@interface Dog : NSObject
{
int age;
}
@property int age;
-(void)Show;
@end
// Dog.m
#import "Dog.h"
@implementation Dog
@synthesize age;
-(void)Show{
NSLog(@"%d",age);
}
@end
[4]인스턴스 변수 선언 삭제 가능
// Dog.h
#import <Foundation/Foundation.h>
@interface Dog : NSObject
@property int age;
-(void)Show;
@end
[5]dot notation 가능
@synthesize로 getter와 setter를 자동으로 생성한다
@property를 사용하면 점(.)표기가 가능하다
// main.m
#import <Foundation/Foundation.h>
#import "Dog.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Dog *happy=[[Dog alloc] init];
// [happy setAge:5];
happy.age=5; //dot notation
// NSLog(@"해피의 나이는 =%d",[happy age]);
NSLog(@"해피의 나이는 =%d",happy.age);
[happy Show]; //
}
return 0;
}
[6]@synthesize 선언 생략 가능
디폴트 프로퍼티 신서사이즈를 사용하면 인스턴스 변수의 속성들은 속성의 이름 앞에 밑줄(_)을 붙여 프로퍼티에 접근한다.
// Dog.m
#import "Dog.h"
@implementation Dog
//@synthesize age;
-(void)Show{
NSLog(@"%d",_age);
}
@end
'2학년 2학기 > ios프로그래밍' 카테고리의 다른 글
테이블 뷰를 이용한 게임 소개 어플 실습 (0) | 2015.11.04 |
---|---|
스토리보드 (화면 전환, 데이터 전달) 실습 (0) | 2015.10.28 |
swift 와 objective-c 의 차이 (2) | 2015.09.30 |
coding ground 에서 Objective-C 실습 해보기 (0) | 2015.09.30 |
Connections inspector 사용법 (0) | 2015.09.30 |