인스턴스 메소드는 인터페이스나 구현부에서 '-' 문자를 앞에 기재합니다.
클래스 메소드의 문자는 '+'로 표기 합니다.
주의점)
클래스 메소드 안에서 인스턴스 변수를 참조 하는 것은 불가능합니다.
인스턴스 메소드를 호출하는 것도 불가능합니다.
어떤 클래스 메소드 안에서 달느 클래스 메소드를 호출하기 위해서는 self 메시지를 보내면 됩니다.
슈퍼 클래스의 클래스 메소드를 호출할 때는 super를 사용합니다.
@interface Animal { // 멤버 변수는 여기에 둔다.
@private
int foo;
} //클래스 메소드는 중괄호 바깥인 여기에 둔다.
-(int) bar : (double) input1; @end |
class Animal { private int foo; public int bar(double intput1) {...} } |
@interface Animal : NSObject { } //Objective-C 상속
@end
class Animal extends NSObject { //Java 상속 } |
@protocol GameEventListener 구현하기 //프로토콜은 멤버 변수를 포함하지 않고 중괄호도 사용하지 않는다. // 메소드 정의는 여기에 하지만 아직 구현은 하지 않는다. -(BOOL) isListening; -(void) handleEvent : (int) event; @end @interface Animal : NSOnject <GameEventListener> { //멤버 변수는 여기에 둔다. @private int foo; BOOL active; } //메소드와 오버라이드 메소드는 여기에 둔다. -(int) bar : (double) input1; -(BOOL) isListening; -(void) handleEvent : (int) event; @end |
@implementation Animal @synthesize foo; -(void) bar : (double) input1 { //input1으로 할일을 한다.
}
-(BOOL)isListening { return self.active;
}
-(void) handleEvent : (int) event { //event에 따라 할 일을 한다.
} @end |