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];
빌드를 하면 다음과 같은 결과가 나온다..