비디오: Android 101 by Fred Widjaja 2024
메소드 iOS 응용 프로그램에 대한 선언은 Java 또는 C ++와 같은 다른 언어에 익숙한 사람에게는 이상하게 보일 수 있습니다. 클래스의 모든 public 메소드는 다음 형식을 사용하여 인터페이스 파일의 메소드 선언 섹션에서 선언된다는 것을 기억하십시오.
:
초기 - 메소드가 인스턴스임을 나타냅니다 방법. A +는 메서드가 클래스 메서드임을 나타냅니다. 매개 변수 목록의 각 매개 변수 정의는 다음과 같습니다.
:
StackOfInteger에 대한 인터페이스 스펙의 메소드를 다시 한번 살펴 보자:
@interface StackOfInteger: NSObject {첫 번째 매개 변수는 - 하나의 매개 변수 - 레이블이 제공되지 않습니다. 다음은 StackOfInteger의 두 매개 변수가있는 메서드의 예입니다.
- (void) push2: (int) intValue1 another: (int) intValue2; 이 광기 뒤에 방법이 있다는 것을 기억하십시오. 레이블을 사용하면 메소드 호출을보다 쉽게 읽을 수 있습니다. 예를 들어, [anArray insertObject: anObject atIndex: 5]는 [myArray insertObject: anObject: 5]보다 읽기 쉽습니다. 여기서 두 번째 매개 변수의 의미는 쉽게 알 수 없습니다. 따라서 postfixall 프로그램-
push2: 5 another: 6; 는push2: 5: 6보다 조금 더 이해할 수 있습니다.
모두 똑같은 것을 의미합니다.공용 메소드 만 인터페이스 파일에서 선언해야합니다. 프로그램에는 개인 메서드와 C 함수도 포함될 수 있습니다. 이것들은 인터페이스 파일에서 선언 할 필요가 없습니다.
메소드 CreateWithExpression은 initWithExpression 대신에 postfix 표현식으로 미리 초기화 된 PostfixCalculator의 인스턴스를 생성하는 데 사용할 수있는 클래스 메소드입니다.
클래스 메소드는 파일 내에서 선언 할 수있는 정적 함수와 같지 않습니다. 클래스 메소드는 서브 클래스에 의해 상속되거나 오버라이드 될 수 있습니다. 정적 메소드는 할 수 없습니다. 흥미롭게도 클래스 수준의 인스턴스 변수는 Objective-C에 존재하지 않습니다. 그러나 시뮬레이션 할 수 있습니다. 이를 수행하는 방법에 대한 예제는 클래스 수준에서 인스턴스 변수를 확인하십시오.
동일한 이름이지만 다른 숫자 또는 매개 변수의 순서가 다른 두 개의 메소드를 가질 수 없습니다. 즉, C ++ 및 Java와 같은 일반적인 OO 언어와는 다른 메서드 오버로드가 불가능합니다.