Your SlideShare is downloading. ×
Objective-C에서의 OOP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Objective-C에서의 OOP

1,080
views

Published on

http://wawworld.me …

http://wawworld.me

changhoonpark@gmail.com

Published in: Entertainment & Humor

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,080
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Objective-C Objective-C에서의 OOP By Changhoon Park http://changhoonpark.wordpress.com Last Update : 2011. 08. 2811년 9월 7일 수요일
  • 2. @interface 클래스명 : 슈퍼클래스명 { ! ! /* 인스턴스 변수 선언 */ } ! ! /* 메소드 선언 */ @end 2 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 3. @interface 클래스명 : 슈퍼클래스명 { ! ! /* 인스턴스 변수 선언 */ } ! ! /* 메소드 선언 */ objC의 클래스는 @interface와 @end @end 사이에 선언됨 3 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 4. @interface 클래스명 : 슈퍼클래스명 { ! ! /* 인스턴스 변수 선언 */ } ! ! /* 메소드 선언 */ objC의 클래스 이름은 @end @interface 바로 다음에 나옴 411년 9월 7일 수요일
  • 5. @interface 클래스명 : 슈퍼클래스명 { ! ! /* 인스턴스 변수 선언 */ } ! ! /* 메소드 선언 */ 상위클래스는 콜론 다음부모 @end 클래스의 이름으로 명시 5 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 6. @interface 클래스명 : 슈퍼클래스명 { ! ! /* 인스턴스 변수 선언 */ } ! ! /* 메소드 선언 */ 중괄호 사이에 객체 변수 @end (Instance Variable) 선언 611년 9월 7일 수요일
  • 7. @interface 클래스명 : 슈퍼클래스명 { ! ! /* 인스턴스 변수 선언 */ } ! ! /* 메소드 선언 */ 메소드는 @interface와 @end @end 사이 & 중괄호 밖에 선언 7 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 8. - (int) age; - (void) setAge: (int) age; + (Person) personWithName: (NSString*) name age: (int) age: - : 인스턴스 메소드 표시 + : 클래스 메소드 표시 8 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 9. - (int) age; - (void) setAge: (int) age; + (Person) personWithName: (NSString*) name age: (int) age: 반환 타입을 괄호 안에 표시 9 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 10. - (int) age; - (void) setAge: (int) age; + (Person) personWithName: (NSString*) name age: (int) age: 메소드 이름 10 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 11. - (int) age; - (void) setAge: (int) age; + (Person) personWithName: (NSString*) name age: (int) age: 콜론(:)은 다음에 인수가 있음 을 표시 1111년 9월 7일 수요일
  • 12. - (int) age; - (void) setAge: (int) age; + (Person) personWithName: (NSString*) name age: (int) age: 괄호 안에 인수의 유형을 표시 12 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 13. - (int) age; - (void) setAge: (int) age; + (Person) personWithName: (NSString*) name age: (int) age: 인수의 이름 13 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 14. @interface Circle : NSObject { ShapeColor fillColor; ShapeRect bounds; } - (void) setFillColor: (ShapeColor) fillColor; - (void) setBounds: (ShapeRect) bounds; - (void) draw; @end // Circle 1411년 9월 7일 수요일
  • 15. @implementation 클래스_이름 ! ! /* 메소드 정의 */ @end objC의 클래스 이름은 @implementation 바로 다음에 15 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 16. @implementation 클래스_이름 ! ! /* 메소드 정의 */ @end 메소드는 @implementation와 @end 사이에 정의 됨 16 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 17. @implementation Circle - (void) setFillColor: (ShapeColor) c { fillColor = c; } // setFillColor - (void) setBounds: (ShapeRect) b { bounds = b; } // setBounds - (void) draw { NSLog (@"drawing a circle at (%d %d %d %d) in %@", bounds.x, bounds.y, bounds.width, bounds.height, colorName(fillColor)); } // draw @end // Circle 17 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 18. int main (int argc, const char * argv[]) { ! [객체 메시지_이름: 인수]; ! id shapes[3]; ! ! ShapeRect rect0 = { 0, 0, 10, 30 }; ! shapes[0] = [Circle new]; ! [shapes[0] setBounds: rect0]; ! [shapes[0] setFillColor: kRedColor]; ! ! ShapeRect rect1 = { 30, 40, 50, 60 }; ! shapes[1] = [Rectangle new]; ! [shapes[1] setBounds: rect1]; ! [shapes[1] setFillColor: kGreenColor]; ! ! ShapeRect rect2 = { 15, 19, 37, 29 }; ! shapes[2] = [OblateSphereoid new]; ! [shapes[2] setBounds: rect2]; ! [shapes[2] setFillColor: kBlueColor]; ! ! drawShapes (shapes, 3); ! ! return (0); ! 18 } // main OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 19. ! [shapes[0] setBounds: rect0]; ! [shapes[0] setFillColor: kRedColor]; ! ! [shapes[1] setBounds: rect1]; ! [shapes[1] setFillColor: kGreenColor]; ! ! [shapes[2] setBounds: rect2]; ! [shapes[2] setFillColor: kBlueColor]; ! [객체 메시지_이름: 인수]; 19 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 20. shapes[0] = [Circle new]; [클래스_이름 new]; 20 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 21. ! id shapes[3]; shapes[0] = [Circle new]; ! shapes[1] = [Rectangle new]; ! ! shapes[2] = [OblateSphereoid new]; 21 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 22. void drawShapes (id shapes[], int count) { ! int i; ! ! for (i = 0; i < count; i++) { ! ! id shape = shapes[i]; ! ! [shape draw]; ! } ! } // drawShapes 22 OOP @interface 색션 @implement 색션 인스턴스 만들기 실습11년 9월 7일 수요일
  • 23. 1. Triangle 클래스 추가하기 (p70) 2. main 함수 수정 (p71) 결과 화면 23 OOP @interface 색션 Shape 확장하기 @implement 색션 MyClass 따라하기 인스턴스 만들기 실습11년 9월 7일 수요일
  • 24. 1. Application을 생성합니다. - Command Line Tool (Type는 반드시 Foundation으로!) 2. 실행하여 Hello world!가 호출되는지 확인합니다. 3. MyClass라는 클래스를 만들어 봅니다. (Mac OS X - Cocoa - Objectice-C class - Subclass of : NSObject - MyClass를 선택하여 myclass.mm, myclass.h를 생성) 24 OOP @interface 색션 Shape 확장하기 @implement 색션 MyClass 따라하기 인스턴스 만들기 실습11년 9월 7일 수요일
  • 25. MyClass의 인스턴스를 생성하기 - new, alloc의 방법을 사용 25 OOP @interface 색션 Shape 확장하기 @implement 색션 MyClass 따라하기 인스턴스 만들기 실습11년 9월 7일 수요일
  • 26. MyClass의 메소드 추가하기. - class method, instance method 모두 추가 26 OOP @interface 색션 Shape 확장하기 @implement 색션 MyClass 따라하기 인스턴스 만들기 실습11년 9월 7일 수요일
  • 27. MyClass의 메소드 호출하기 - class method, instance method 모두 호출 27 OOP @interface 색션 Shape 확장하기 @implement 색션 MyClass 따라하기 인스턴스 만들기 실습11년 9월 7일 수요일
  • 28. 1. 추가한 메소드에 매개변수를 넘겨봅시다. - class method, instance method에 매개변수 만들기 - int, float, NSString 등의 여러가지 데이터 타입 이용 28 OOP @interface 색션 Shape 확장하기 @implement 색션 MyClass 따라하기 인스턴스 만들기 실습11년 9월 7일 수요일

×