반응형

우선 강의를 하기전에 말씀 드립니당.

저는 일단 VMware라 너무 느려요...ㅡㅡ;; 쏘리쏘리 쏘쏘리... 그래서 컴파일 하나 하기도 힘들구

코딩하기두 힘들어서 흑흑흑... 흑.. 흑...OTL

 

그래서 결과를 제대로 보여드리지는 못하구요.

설명 위주로 하겠습니다.... 흑흑....ㅠㅠ

장학금을 꼭 따서.... 맥미니를 사겠습니다....ㅇ_ㅇ

근데, 학교공부는 언제하나....ㅎㅎ;;;

 

이제 아이폰 강의가 시작이 되었죠 ㅇㅅㅇ

그때그때 필요한걸 이 ObjectiveC강의란에서 하게 될 것입니다.

다음 강의를 위에 Property... 들어갑니다..!

 

우선 맥을 켜 주시구, 이제 Xcode가 2개네요 ~_~...

바탕화면은 웃어 넘겨주시구 ㅎㅎ ~_~;;;

 

 

우선 프로젝트 만드는 법을 까먹으셨을 수도 있으니, 차례차례 다시 합니닷 >ㅅ<

(사실, 그림이 너무 없어서, 이런걸로 그림 채우기...ㅎㅎ;;)

 

 

Command Line Tool - Foundation 선택 하시구요.

 

 

제목은 Property Test입니다.

상콤하게 만들어 주시구요.

제가 Xcode를 힘들게 힘들게 쓰다보니 거의 사상언어를 쓰는 편입니다.

(사상언어 : 머릿속에서 플레이 하는 프로그래밍 언어. 이런 용어는 밖에서 쓰이지 않으니 쓰지 마심므)

(아리스토텔레스인가 뭐시기인가의 사고실험에서 영감을 얻은 단어...ㅡㅡ;)

 

사상언어를 쓰시다보면, 에러코드도 안 만드는 연습도 하구, 뭐 괜찮습니다 ~_~

닥치고 빨리 맥 미니가 필요하다.... 돈이 없서...ㅍ_ㅍ

 

 

상콩하게 오른족 버튼 누르시구 New File을 눌러줍니다.

예제는 그냥 저번것 비슷한 Car 예제를 사용하겠습니다.

 

 

Objective-C Class를 선택해주시고

NSObject의 상속을 받읍시다.

 

아, ObjectiveC강의를 지금 보시고 계시다면

JAVA 꼭 해보시기를....

ObjectiveC와 완전히 같습니다. ~_~(거의 90% 가량..)

(맥 미니가 없어서, 맥으로 잘 못해 죄송한 마음으로.... 자바강의는 열심히 쓸게요...ㅠㅠ)

 

 

제목은 역시나 지금 만들고 있는 프로그램과 비슷한 Car.m..!

 

 

그럼 상콤하게 아래와 같이 쳐주십니다. 가 아니고, 제가 쳐다가 키도그 집어 던질 뻔 했습니다..ㅡㅡ;;

(지금 이 강의를 보시는 중에 맥제품을 쓰고 계신다면 부럽군염...ㅠㅠ)

일단 Setter와 Getter의 개념에 대해 알아보도록 합시다.

 

객체를 생성하고 다음과 같이 그냥 접근하면 불가능 하다고 난리를 치십니당.

 

 

그래서, Getter/Setter가 필요합니다 ~_~

(걍 만드는겁니다 ~_~, ObjectiveC에서는 일반 변수는 겟터가 변수이름과 같습니당.)

 

Car.h

 #import <Foundation/Foundation.h>

@interface Car : NSObject{
  int num;
  int in_time;
  int out_time;
  int money;
}

-(void) setNum;
-(int) getNum;
-(void) setIn_time;
-(int) getIn_time;
-(void) setOut_time;
-(int) getOut_time;
-(void) setMonet;
-(int) getMoney;

@end

 

Car.m

 #import "Car.h"

@implementation Car
-(int) getNum() {
 return num;
}
-(void) setNum:int n {
 num = n;
}
-(int) getIn_time() {
 return in_time;
}
-(void) setIn_time:int i {
 in_time = i;
}
-(int) getOut_time() {
 return out_time;
}
-(void) setOut_time:int o {
 out_time = o;
}
-(int) getMoney() {
 return money;
}
-(void) setMoney:int m {
 money = m;
}
@end

 

쓰시지 마시구요. ㅋㅋ;; 계속 읽어주세요 >ㅅ<

 

우선, Setter와 Getter에 대해서 알아보도록합시다.

저는 프로그래밍을 공부하면서,

"외부에서 직접접근하면 안됨므, 일단 private써야함므" 라고 하면 항상

"왜요?" 라고 물었습니다.

 

1. 캡슐화, 캡슐화, 실수해서 안에있는 데이터를 바꿀 수도 있구.

2. 우리가 전자제품의 부품을 볼 필요는 없잖니.

 

하는데 저는 살면서 그런 빠가같은 실수를 해본적이 없습니다 ~_~...

(뭐 솔직히 말해서, const나 final 이용한 변수 바꾼적도 없음므...ㅡㅡ;;)

부품 알면 좋지, 왜 보면 안되는 거지...

왜 그래야 하는가, 그냥 public해서 접근해도 되는데

왜 private 선언해버리고 getter/setter를 설정하는가에 대한 고민을 심각하게 한 적이 있었습니다.

 

뭐 정확한 답은 내지 못했구요.

간단하게 "다 그렇게 하니까."로 답을 냈습니다.

"완전 무책임 해...!!!"

하하하 제길...ㅡㅡ 이걸로 아는 누나하고 싸운적도 있어요.

 

"ㅎㅎ 객체의 안을 알 필요는 없잖니, 그냥 쓰면 되는거지."

"알아서 나쁠건 없잖아요."

"ㅎㅎ 그러다 잘못 건드리면 어떻게해?"

"어떤 병이 그걸 잘못 건드려요"

"..안 건드릴거면 private 써...!!"

"~_~ 잉, 그냥 public 선언하"

"닥쳐!"

 

이런 적도 있답니당. ~_~ 다른사람이 다 그러니 우리도 그럽시다.

ObjectiveC에서는 자동으로 Private 선언됩니다.

 

그래서 Getter/Setter가 필요합니다.

물론 Getter와 Setter가 있어서 편리한 점도 있습니다.

 

예를들어 헬로키티 인형의 "수"가 속성(변수)입니다. 그럼 음수가 떠서는 안되겠죠??

(왜 하필 예가 이따위냐면, 제가 헬로키티의 매니아이기 때문이죠.... 작년에 연씨한테 감염)

 

헬로키 티.jpg

더있지만, 빼면 안되는 위치에 있어서 ~_~

 

그럼 여기에

 

-(void) set인형:int 인형수 {

          if(인형수>0){
               인 형 = 인형수;

          } else {

               NSLog(@"개념좀 챙기고 입력하심므");

          }
}

 

이런 식으로 만들수가 있겠죠 ~_~

 

그럼 이제 자바를 하신 분들이 들고 일어납니다.

"이클립스는 그냥 만들어 주는데, Xcode는 그런거 없나요?!"

 

물론 당연히 있습니다...!!

 

(쓰다가 던진 화면.jpg....) 넘어가구요..ㅡㅡ;;

 

그럼 자동으로는 어떻게 생성하나..?!

면 바로바로 Property입니다.

 

아래와 같이 @property / @synthesize를 입력해 줍니다.

 

 

그럼이제 된겁니다.

"엥, 뭐가 된건데요?"

아까 에러가난 부분을 다시 봅시다.

 

이제 문제없이 진행이 됩니당. 우앗 >ㅅ<

신기신기 동방신기

(뭔 개소리야...ㅡㅡ;;)

 

 

그리고 이제는 setter도 자동으로 만들어졌습니다.

아래와 같이요 >ㅅ< 룰루~

자동으로 엔터치면 입력이 쑤루루 되죠 ㅎㅎ

 

 

다른것두 마찬가지 ~_~

 

 

메모리 해제는 잊지마시구 하시구염. 아래와 같이...ㅎ

 

 

어쨌거나 오늘 강의도 끝 ~_~

그럼 다음번에는 이 Property를 사용한 iPhone 강의가 진행이 되겠지요 ~_~

VMware의 상태가 안 좋으면 저번에 만든거 위에 그림하나 넣고 끝날쑤두...ㅡㅡ;;;

 

원래 더 자세하게 보려구 했는데요...ㅠㅠ

힘드네용 OTL(맥 너무 비싸염 ㅠㅠ...그러니 PC에 밀렸지....ㅠㅠ)

 

프로퍼티랑, 신데사이저 쓰면 그냥 저렇게 된다는 것만 인지하시구요 ~_~

아이폰 강의에서 어떻게 활용하는지 보도록 하점..

...근데 보셨으면 ...리.. 리플점 ..ㅠㅠ

반응형

'Mobile > Object-C' 카테고리의 다른 글

[Study 1]  (0) 2010.10.20
ObjectiveC 11강 - Self와 Super  (0) 2010.10.01
ObjectiveC 9강 - 본격적인 객체지향 프로그래밍  (0) 2010.10.01
ObjectiveC 8강 - 조건, 반복문  (0) 2010.10.01
ObjectiveC 7강 - 데이터형과 표현식  (0) 2010.10.01

+ Recent posts