최근 편집
최근 토론
게시판 메인
도구
투표
무작위 문서
스킨 설정
파일 올리기
기타 도구
216.73.216.27
IP
사용자 도구
사용자 설정
로그인
회원 가입
최근 편집
최근 토론
돌아가기
삭제
이동
파일 올리기
Objective-C
(편집)
(불러오기)
(편집 필터 규칙)
[[분류:가져온 문서/오메가]] [[외부:https://pbs.twimg.com/media/FvdL8CCXoAICWZQ.jpg|width=300]] 프로그래밍 언어의 일종. [[C언어]]를 기반으로 smaltalk 형태의 객체지향 기능을 갖춘 언어이다. NeXT, Mac OS X의 OS에 표준 제공되는 공식 개발 언어이다. 현재는 주로 애플의 Mac OS X와 iOS에서 작동하는 응용 프로그램 개발에 이용된다. == 개요 == Objective-C는 C로 작성된 개체 지향 시스템을 제어할 수 있도록 매크로적 확장을 한 언어이다. 메서드(함수)의 파라미터에 라벨을 붙일 수 있는 장점이 있다. C나 C++는 함수를 호출하는 부분에 파라미터만 나열하므로 파라미터의 의미 파악이 어렵다. 그러나 Objective-C는 처음 보는 코드라도 라벨을 참조하면 무엇이 파라미터로 지정되었는지 의미 파악이 용이하다. Objective-C에서의 프로그래밍은 Objective-C를 지원하는 컴파일러로 컴파일하고 프로그램을 빌드해서 실행하는 순서로 진행된다. 이러한 컴파일러는 Mac OS X에서는 Xcode를 설치하면 해결된다. Mac OS X 외의 환경에서는 GNUstep을 사용할 수 있다. == 역사 == 1980년대 초반에 브래드 콕스와 톰 러브에 의해 개발되었으며, NeXT의 NeXTSTEP 운영체제의 주요 개발 언어로 채택되면서 널리 사용되기 시작했다. 이후 NeXT가 애플에 인수되면서 macOS와 iOS의 공식 개발 언어로 자리매김하였으며, 오랫동안 애플 생태계의 핵심 기술로 사용되었다. 하지만 2014년 애플이 Swift라는 새로운 프로그래밍 언어를 발표하면서 입지가 점점 좁아지고 있다. == 클래스 == 크게 4가지의 특징이 있다. * 다중상속 불가 * 대부분의 클래스는 'NSObject' 클래스를 상속 * 동적 타입 설정 * 메서드명과 인스턴스 변수명은 중복 가능 C++와 달리 Objective-C는 클래스 다중상속이 불가능하다. 하지만 '프로토콜'을 이용해 다른 형태의 인터페이스 정의가 가능하다. NSObject 클래스는 Objective-C에서 중요하게 다뤄지는 기본 클래스이다. === 호환성 === C언어 함수에서 Objective-C 메서드를 호출할 수 있으며 그 역도 가능하다. 이외에도 구조체와 타입 정의에 쓰이는 'typedef' 명령도 사용 가능하다. C++ 클래스도 사용 가능하지만, 클래스 계층을 혼합하는 것은 불가능하다. C++클래스를 상속한 Objective-C 클래스를 구현하거나 반대로 Objective-C 클래스를 상속한 C++ 클래스는 구현할 수 없다. 또한 C++의 가상함수 지원이 되지 않는다. == 코드 == === 클래스 정의 === {{{#!syntax C @interface classobject : NSObject { /*클래스 변수*/ int val; id obj; } + (void)classMethod:(id)arg; // 클래스 메서드 - (id)method:( NSObject*)arg1 with:(int)arg2; // 인스턴트 메서드. arg1은 유형이 지정됨 @end }}} == 영상 == [youtube(-KsnpU--88I)] [Include(틀:가져옴2,O=오메가, C=[[https://creativecommons.org/licenses/by-nc-sa/3.0/deed.ko|CC BY-NC-SA 3.0]])]
(임시 저장)
(임시 저장 불러오기)
기본값
모나코 에디터
normal
namumark
namumark_beta
macromark
markdown
custom
raw
(↪️)
(💎)
(🛠️)
(추가)
[[분류:가져온 문서/오메가]] [[외부:https://pbs.twimg.com/media/FvdL8CCXoAICWZQ.jpg|width=300]] 프로그래밍 언어의 일종. [[C언어]]를 기반으로 smaltalk 형태의 객체지향 기능을 갖춘 언어이다. NeXT, Mac OS X의 OS에 표준 제공되는 공식 개발 언어이다. 현재는 주로 애플의 Mac OS X와 iOS에서 작동하는 응용 프로그램 개발에 이용된다. == 개요 == Objective-C는 C로 작성된 개체 지향 시스템을 제어할 수 있도록 매크로적 확장을 한 언어이다. 메서드(함수)의 파라미터에 라벨을 붙일 수 있는 장점이 있다. C나 C++는 함수를 호출하는 부분에 파라미터만 나열하므로 파라미터의 의미 파악이 어렵다. 그러나 Objective-C는 처음 보는 코드라도 라벨을 참조하면 무엇이 파라미터로 지정되었는지 의미 파악이 용이하다. Objective-C에서의 프로그래밍은 Objective-C를 지원하는 컴파일러로 컴파일하고 프로그램을 빌드해서 실행하는 순서로 진행된다. 이러한 컴파일러는 Mac OS X에서는 Xcode를 설치하면 해결된다. Mac OS X 외의 환경에서는 GNUstep을 사용할 수 있다. == 역사 == 1980년대 초반에 브래드 콕스와 톰 러브에 의해 개발되었으며, NeXT의 NeXTSTEP 운영체제의 주요 개발 언어로 채택되면서 널리 사용되기 시작했다. 이후 NeXT가 애플에 인수되면서 macOS와 iOS의 공식 개발 언어로 자리매김하였으며, 오랫동안 애플 생태계의 핵심 기술로 사용되었다. 하지만 2014년 애플이 Swift라는 새로운 프로그래밍 언어를 발표하면서 입지가 점점 좁아지고 있다. == 클래스 == 크게 4가지의 특징이 있다. * 다중상속 불가 * 대부분의 클래스는 'NSObject' 클래스를 상속 * 동적 타입 설정 * 메서드명과 인스턴스 변수명은 중복 가능 C++와 달리 Objective-C는 클래스 다중상속이 불가능하다. 하지만 '프로토콜'을 이용해 다른 형태의 인터페이스 정의가 가능하다. NSObject 클래스는 Objective-C에서 중요하게 다뤄지는 기본 클래스이다. === 호환성 === C언어 함수에서 Objective-C 메서드를 호출할 수 있으며 그 역도 가능하다. 이외에도 구조체와 타입 정의에 쓰이는 'typedef' 명령도 사용 가능하다. C++ 클래스도 사용 가능하지만, 클래스 계층을 혼합하는 것은 불가능하다. C++클래스를 상속한 Objective-C 클래스를 구현하거나 반대로 Objective-C 클래스를 상속한 C++ 클래스는 구현할 수 없다. 또한 C++의 가상함수 지원이 되지 않는다. == 코드 == === 클래스 정의 === {{{#!syntax C @interface classobject : NSObject { /*클래스 변수*/ int val; id obj; } + (void)classMethod:(id)arg; // 클래스 메서드 - (id)method:( NSObject*)arg1 with:(int)arg2; // 인스턴트 메서드. arg1은 유형이 지정됨 @end }}} == 영상 == [youtube(-KsnpU--88I)] [Include(틀:가져옴2,O=오메가, C=[[https://creativecommons.org/licenses/by-nc-sa/3.0/deed.ko|CC BY-NC-SA 3.0]])]
비로그인 상태입니다. 편집한 내용을 저장하면 지금 접속한 IP가 기록됩니다.
편집을 전송하면 당신은 이 문서의 기여자로서 본인이 작성한 내용이
CC BY 4.0
에 따라 배포되고, 기여한 문서의 하이퍼링크나 URL로 저작자 표시가 충분하다는 것에 동의하는 것입니다.
전송
미리보기