- 클래스 작성
- 목적 : SDK에서 제공되는 클래스들에서 원하는 기능이 없는 경우 특정 기능을 가진 클래스를 만들어서 사용하기 위해서 작성한다.
- 클래스 생성하는 방법
- Nativigator 에서 마우스 오른쪽버튼을 눌러서 New File 버튼을 누른다.
- 헤더 파일과 Objective-C 파일을 따로 만들어도 되나 Cocoa Class 를 선택하면 선언하는 헤더파일과 구현하는 구현파일인 Objective-C 파일이 생성된다.
- 선택하여 "Ractangle" 을 입력하면 아래와 같은 파일이 생성된다.
- 아래와 같이 헤더 파일에 변수나 메소드를 정의한다.
- 구현 파일에는 헤더 파일에서 정의한 메소드를 구현한다.
- 클래스에 정의 및 구현한 메소드들을 이용하여 사각형의 길이와 높이를 정의하고 그 길이를 구하는 함수를 구현하도록 한다.
- 헤더 파일(.h)은 클래스에서 사용하는 메소드를 선언하는 부분으로 외부에 공개가 되며, 구현 파일(.m)에서는 헤더 파일에서 선언한 메소드를 구현한다.
- 변수는 헤더파일, 구현파일 모두에서 선언이 가능하며, 헤더파일에서 선언하면 공개가 되고, 구현파일에서 선언하면 비공개가 된다.
- 클래스 상속
- 정의 : 부모 클래스와 자식 클래스를 생성하여 부모 클래스에 있는 변수 및 메소드를 자식 클래스에서도 사용할 수 있는 것을 의미한다.
- Object-C에서는 단일 상속만 지원한다. 즉 자식 클래스는 하나의 부모 클래스만을 가지고, 부모 클래스는 여러 자식 클래스를 가질 수 있다. 아래 그림은 뷰 클래스가 부모 클래스이고, 라벨, 이미지 뷰, 버튼은 자식 클래스이다.
- Is-a 관계 : 자식 클래스 객체는 부모 클래스로 객체로 취급한다.
예시) View *view = [[Label alloc] init]; 형태로 정의 - 오버로딩(Overloading)과 오버라이딩(Overridiing)
- 오버로딩: 같은 이름의 메소드를 여러 개 가지면서 매개변수의 유형과 개수가 다름
- 오버라이딩 : 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의 해서 사용
- Object-C에서는 오버라이딩만 지원한다.
- Ractangle 클래스를 상속받는 Square라는 클래스를 생성한다.
- setWidth 함수를 재정의하여 사용한다.
- Square 클래스에서는 Ractangle 클래스에 있는 함수도 사용할 수 있다.