클래스 메소드



대부분의 메소드는 인스턴스 메소드라고 불리는데, 각각의 객체 인스턴스에 대해 동작하기 때 문입니다. 클래스 메소드는 객체 대신 클래스에 대해 동작하는 메소드입니다(생성자 제외). 클래스 메소드에는 일반적인 클래스 메소드와 클래스 정적 메소드의 두 종류가 있습니다. 


■ 일반적인 클래스 메소드


클래스 메소드의 정의는 예약어 class로 시작되어야 합니다. 아래 예를 보십시오.

Object_9_1.png 


클래스 메소드의 정의적 선언도 역시 class로 시작해야 합니다. 아래 예를 봅시다.

Object_9_2.png 


클래스 메소드의 정의적 선언에서, 식별자 Self는 메소드가 호출된 클래스를 의미합니다(자 신이 정의된 클래스의 자손일 수도 있습니다). 클래스 C에서 메소드가 호출되면, Self는 C클래스 타입입니다. 따라서 Self를 이용하여 인스턴스 필드, 인스턴스 속성, 일반적인 (객체) 메소드를 액세스할 수가 없습니다. 하지만 생성자나 다른 클래스 메소드, 혹은 클래스 속성 이나 클래스 필드를 호출하기 위해 Self를 사용할 수는 있습니다.


클래스 메소드는 클래스 참조나 객체 레퍼런스를 통해 호출할 수 있습니다. 객체 레퍼런스를 통해 호출했을 때는, 객체의 클래스는 Self의 값이 됩니다. 


■ 클래스 정적 메소드


일반적인 클래스 메소드처럼, 클래스 정적 메소드(class static method)는 객체 레퍼런스 없 이 액세스 가능합니다. 일반적인 클래스 메소드와 다른 점은, 클래스 정적 메소드는 Self 파라 미터가 아예 존재하지 않는다는 것입니다. 인스턴스 멤버를 액세스할 수 없다는 점도 동일합 니다. (역시 클래스 필드, 클래스 속성, 클래스 메소드를 액세스할 수 있습니다) 일반 클래스 메소드와 다른 또 한가지는, 클래스 정적 메소드는 가상 메소드로 선언될 수 없다는 것입니다. 메소드를 클래스 정적 메소드로 만들려면 선언의 뒤에 static이라는 예약어를 추가하면 됩니 다. 아래의 예를 봅시다. 


Object_9_3.png

일반 클래스 메소드처럼, 클래스 정적 메소드를 호출하려면 객체 참조 없이 클래스 타입을 통해서 호출하면 됩니다. 아래의 예를 참고하십시오.


Object_9_4.png 



참조링크

델파이 프로그래밍 언어 - 엠바카데로 저 | 박지훈 역 (2009년) 

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15441
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13962
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16499
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22055
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23268
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18923
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39257
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174713
503 [발표자료] RAD Studio XE8 출시 세미나 관리자 2015.05.01 612
502 [업데이트][핫픽스][XE8] iOS 플랫폼의 SQLite 라이브러리 누락 패치 file Humphery 2015.04.30 859
501 [XE8] 번거로운 수작업을 줄여 핵심기능 개발에 집중할 수 있는 개발 생산성 향상도구 Humphery 2015.04.28 897
500 [XE8] TAppAnalytics 컴포넌트로 앱의 사용량 수집, 분석해 사용성을 이해할 수 있습니다. file Humphery 2015.04.27 803
499 델파이에서 MSOffice 엑셀과 워드 연동 참고자료. [1] Humphery 2015.04.27 3772
498 이 달의 기술자료 - 2015년 05월 file 험프리 2015.04.24 5494
497 [델파이7 이후 새로운 기능][XE2~] 프로젝트 매니저에서 타겟플랫폼을 64-bit Windows로 선택 해 64비트 애플리케이션을 개발할 수 있습니다. file Humphery 2015.04.23 4723
496 [델파이7 이후 새로운 기능] 추가되고 개선된 VCL 컴포넌트 Humphery 2015.04.22 3576
495 [델파이7 이후 새로운 기능] 코딩 생산성을 높여주는 코드에디터 기능들 Humphery 2015.04.21 2692
494 XE8로 구현한 멀티플랫폼 클립보드 공유앱 런칭 file c2design 2015.04.19 1185
493 Thalmic Labs의 MYO Armband Delphi SDK Beta7입니다. 쭈니아빠 2015.04.18 1135
492 [XE8] 오프라인에서 도움말을 볼 수 있습니다.(CHM 형식) Humphery 2015.04.17 926
491 [XE8] 대화형 지도 컴포넌트로 구글맵과 애플 맵킷 한번에 사용하기 Humphery 2015.04.17 1650
490 [XE8] 멀티-디바이스 미리보기: 다양한 디바이스 화면을 미리보며 최적화된 화면 개발하기 Humphery 2015.04.17 1132
489 XE8 새로운 기능외의 개선사항 Humphery 2015.04.16 925
488 [XE8] 버전 컨트롤 시스템 IDE 통합(Mercurial 지원) [1] Humphery 2015.04.15 1376
487 [XE8] 근거리 위치기반 서비스를 개발할 수 있는 비콘(Beacon) 연동하기 [1] Humphery 2015.04.15 3941
486 [업데이트][XE7] iOS 8.1.3/8.2 서명과 프로비저닝 프로파일 지원 핫픽스(베타) Humphery 2015.04.14 1055
485 파이어몽키에서 외부 라이브러리 연동하기(jar, so, a) [3] Humphery 2015.04.14 3547
484 [따라하기] reFind 도구를 이용해 BDE 프로젝트를 FireDAC으로 마이그레이션 따라하기 [9] Humphery 2015.04.14 4146