지난 포스팅에 이어서 두번째 포스팅에 들어가보겠다...

일단 소스를 보자





이번 프로그램은 객체를 2개 생성하여 각각의 인스턴스 변수및 메서드를 활용하는 것이다.
일단 클래스를 생성하여 준다. 클래스는 1편의 프로그램과 같다...
그리고 implementation부분도 생성을 해준다. 물론 이부분또한 앞과 같다..
하지만 프로그램 부분에서는 다르게 표현을 한다

Fraction 클래스의 객체를 frac1 과 frac2로 생성을 해주고 각각을 초기화 해준다..
Fraction *frac1=[[Fraction alloc]init];
Fraction *frac2=[[Fraction alloc]init]'
이부분이다. 이부분에서 각각의 객체를 생성하여주고 바로 초기화를 해준다..

다음 코드를 보면 객체하나하나에  클래스의 인스턴스변수로 숫자를 대입해 주고있다.

[frac1 setNumerator: 2];
[frac1 setDenominator::3]; 

 

frac1 의 객체에 변수들의 값을 넣어주고 

[frac2 setNumerator: 4];
[frac2 setDenominator: 5];

frac2 의 객체또한 같은 방법으로 값을 넣어준다..

그리고 객체 각각의 print메서드로 값들을 호출하게 되면 다음과 같은 결과가 나온다..



그후 객체 각각의 메모리를 반환하여 준다
[frac1 release];
[frac2 release];





다음은..인스턴스 변수의 접근과 데이터를 캡슐화 하는 코드를 보겠다..
일단 코드를 보자



객체의 인스턴스 변수에 접근하는 프로그램이다.

바로위의 프로그램과 다른것이 있다면.. 클래스선언부분에 int형 변수를 선언해놓았다.
클래스의 인스턴스 변수는 바로 접근이 불가능하다.

코드의 implementation부분에서 numerator 과 denominator을 각각 반환하는 메서드를 작성하였다.

그후 프로그램부분에서는 객체를 생성후
프린트 할때 객체의 변수값을 직접받아오는것이아니라
메서드를 거쳐 반환된 값을 출력하도록 하게 되어있다..
출력값은 상상하시는것 이상 이하도 아니다 ㅎ


 

블로그 이미지

百見 이 不如一打 요 , 百打 가 不如一作 이다.

,

3번째 포스팅이다..

자바할때 배웠던 클래스, 객체, 메서드에 대해서 알아보자..그러기전에 우선 예를 들고 시작해야겠다..노트북을 예로 들어보자.

노트북. 하면 여러 종류가 있다..내가 가지고 있는 맥북에어, 혹은 당신이 가지고 있는 맥북프로;;노트북의 종류는 정말 많다..

클래스란 노트북 이라고 할수 있으며맥북에어
, 맥북프로는 객체라고 설명할수 있다 즉 객체는 클래스의 하위 범주이다.클래스로
 
부터 나온것을 인스턴스라고 부르고
, 이 인스턴스가 수행하는 행동을 메서드 라고 한다.메서드는 클래스 인스턴스나 클래스
 
자체에서 적용이 되어진다
.만약 당신이 노트북(클래스)을 부셔버린다(Dell 노트북??)이는 인스턴스메서드에 해당이 된다

(클래스에 대한 행동) 하지만 노트북(클래스)을 만드는 애플, , 또시바에서 만드는 노트북의 모델을 알아내는 행동은

클래스에 적용되는 부분이므로
클래스 메서드가 된다.아 써놓고도 무슨 말인지 이해가 가지 않는다..이렇게 어려웠나 ㅠㅠ일단

내가 공부하는 책의 소스를 보면서 더 자세히 알아보자
..분수를 다루는 간단한 프로그램이다.



int형 변수 2개에 각각의 숫자를 넣어주고, 프린트로 그 넣어준 숫자를 출력하는 간단한 프로그램이다.물론 결과는 밑에 그림과 같이 나온다..





 

다음은 이 프로그램을 좀더 발전시켜 클래스를 만들어 작성해 보자..




일단 interface부분부터 살펴보자interface는 클래스, 테이터요소, 메서드를 선언한다.interface 에서 Fraction이라는 클래스를 생성하고 안에 int 형 인스턴스변수를 2개 생성하였다.

 

그리고 interface 내에서 print, setNumerator, setDenominator 메서드를 선언해 주었다setNumerator,setDenominator메서드는 모두 아무런 값도 반환하지 않고, 인수를 받는 역할을 하게 된다.

 

2번째 implementation 부분을 살펴보면interface에서 선언한 메서드들의 기능을 구현하는 부분이다.print 부분에서는 클래스의 인스턴스변수를 출력해주는 기능을setNumerator 부분에서는 클래스의 인스턴스 변수에 값을 전달해주는 기능을마찬가지로 setDenominator 부분도 클래스의 인스턴수 변수에 값을 전달해주는 부분이다.

 

자 이제 program 부분을 살펴보자 program부분에서는 클래스의 객체를 정의하는것으로 시작한다클래스 Fraction의 객체 myFraction을 정의 한다.즉 객체 myFraction이 클래스Fraction의 값을 저장한다는 말이다.

 

정의된 클래스생성 및 객체를 초기화 해주어야 하므로 myFraction = [Fraction alloc]; (클래스에 alloc메세지를 보내 그 클래스의 새로운 인스턴스를 받는다.)객체를 생성한후 초기화를 해주어야 한다.myFraction = [myFraction init]; 객체를 초기화 하였다..

 

그다음 객체를 클래스 메서드를 사용하여 각각의 값을 할당해준후 클래스메서드인 print로 할당된 값들을 출력하여 준다..그리고 객체가 사용했던 메모리를 해제해 준다..[myFractio release];

 

빌드를 하면 다음과 같은 결과가 나온다..

 




 
블로그 이미지

百見 이 不如一打 요 , 百打 가 不如一作 이다.

,



  Xcode 가 설치되어있는 환경이라면 위의 사진처럼 Dock에 Xcode가 나와있거나..아니면 응용프로램에 보면 위와같은 아이콘을 찾을수 있다.
이제 Xcode 아이콘을 눌러서 실행을 시키자! 그럼 밑에처럼 프로젝트 생성하는 화면이 나오게 된다.


프로젝트 선택화면 이다. 위의 선택된 Create a new Xcode project를 클릭하여 다음화면으로 넘어가자..


프로젝트를 생성하기를 누르면 이와같은 화면이 뜨게 된다.. 나는 Objective-C 공부를 할것이므로..일단 Command line tool을 선택하였다.

 



Command line tool 을 선택하고 다음을 누르면 이와같은 화면을 볼수 있는데..Product Name에는 프로젝트 이름을 써 넣는다.(아무거나..)
그 후 바로 밑에 type 에서는 foundation 을 선택하고 다음을 누르면 다음과 같은 화면을 볼수 있다..



 프로젝트를 저장할 경로를 선택하고 생성을 누른다!!

 



짜잔..이런 화면이 뜬다.. 자 이제 시작해볼까?

왼쪽에 보면 여러 폴더와 파일이 보인다..우리는 다른건 제껴두고 일단 확장자가 m 인 파일을 선택하자..



확장자가 m 인 파일. 즉 main.m 파일을 시작하면 가장 기본적인 코드가 나온다..
이제 나는 objective-c 에 발을 들여놓게 되었다....


 


#import <Foundation/Foundation.h>


int main (int argc, const char * argv[])

{


    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];


    // insert code here...

    NSLog(@"Hello, World!");


    [pool drain];

    return 0;

}

가장 기본적인 소스코드 이다.
C언어와는 분명히 다른 코드들이다..이제부터 하나씩 공부해 나가자!! 
 


블로그 이미지

百見 이 不如一打 요 , 百打 가 不如一作 이다.

,


오늘부터 시작이다..
옛날 기억을 되살려서 고고고
블로그 이미지

百見 이 不如一打 요 , 百打 가 不如一作 이다.

,