클래스란?
클래스는 객체지향 프로그래밍(OOP)의 핵심 개념 중 하나로,
코드의 재사용성과 유지 보수성을 향상시키는 데 도움을 줍니다.
델파이에서 클래스를 사용하면 더욱 효율적이고
구조화된 프로그램을 개발할 수 있습니다.
클래스란 무엇인가요?
클래스는 데이터와 그 데이터를 조작하는
메서드를 포함하는 하나의 개체(object)입니다.
클래스는 현실 세계의 객체를 모델링하며,
해당 객체의 특징과 동작을 정의합니다.
예를 들어, "사람" 클래스는 이름, 나이, 성별 등의 데이터와
"인사하다", "먹다" 등의 동작을 가질 수 있습니다.
클래스의 구성 요소
클래스는 속성(프로퍼티)과 동작(메서드)으로 구성됩니다.
속성은 클래스의 데이터를 나타내며,
동작은 데이터를 조작하고 사용하는 방법을 정의합니다.
이러한 구성 요소를 사용하여 객체를 생성하고 조작할 수 있습니다.
클래스의 정의와 사용
델파이에서 클래스를 정의하려면 type 키워드를 사용합니다.
클래스의 멤버 변수와 메서드는 private, protected, public 등의
가시성 지시자로 접근 범위를 제어할 수 있습니다.
클래스는 객체를 생성하기 위해 사용되며, var 키워드를 사용하여
객체 변수를 선언합니다.
객체 변수를 사용하여 클래스의 멤버에 접근하고
메서드를 호출할 수 있습니다.
클래스 상속
델파이에서는 클래스 상속을 통해
기존 클래스를 확장하고 재사용할 수 있습니다.
상속은 기존 클래스의 속성과 메서드를 상속받는
새로운 클래스를 만드는 개념입니다.
상속을 사용하여 코드의 재사용성과 확장성을 향상시킬 수 있습니다.
다형성과 추상 클래스
델파이에서는 다형성을 통해 여러 클래스를
동일한 타입으로 처리할 수 있습니다.
추상 클래스는 인스턴스를 직접 생성할 수 없으며,
다른 클래스에서 상속하여 사용됩니다.
추상 클래스를 사용하면 공통된 인터페이스를 정의하고
다른 클래스에서 이를 구현할 수 있습니다.
클래스와 객체의 관계
클래스는 객체를 생성하기 위한 템플릿이며,
객체는 클래스의 인스턴스입니다.
객체는 메모리에 할당된 실체로, 클래스에 정의된 속성과
메서드를 사용할 수 있습니다.
객체는 클래스의 멤버 변수에 저장된 데이터를 조작하고
클래스의 메서드를 호출하여 원하는 동작을 수행할 수 있습니다.
다음은 클래스에 대한 예제이다.
program ClassExample;
type
Person = class
private
Name: string;
Age: Integer;
public
constructor Create(newName: string; newAge: Integer); procedure Introduce(); end;
constructor Person.Create(newName: string; newAge: Integer); begin
Name := newName; Age := newAge;
end;
procedure Person.Introduce();
begin
WriteLn('이름:', Name); WriteLn('나이:', Age);
end;
var
person1, person2: Person; begin
// Person 클래스의 객체 생성
person1 := Person.Create('John', 25);
person2 := Person.Create('Jane', 30); // 객체 정보 출력
person1.Introduce(); person2.Introduce(); // 객체 해제
person1.Free;
person2.Free;
end.
위의 예제에서는 Person 클래스를 정의합니다.
Person 클래스에는 Name과 Age라는 두 개의 속성이 있으며,
생성자(constructor)를 통해 초기화됩니다.
또한 Introduce라는 메서드를 정의하여 객체 정보를 출력합니다.
person1과 person2라는 두 개의 Person 객체를 생성하고,
각각의 정보를 출력합니다.
마지막으로 Free 메서드를 사용하여 객체를 해제합니다.
실행 결과는 다음과 같습니다:
이름: John
나이: 25
이름: Jane
나이: 30
위 예제는 간단한 클래스의 활용을 보여줍니다.
클래스를 사용하면 코드의 가독성과 재사용성을 향상시킬 수 있으며,
객체 지향 프로그래밍의 다양한 개념을 적용할 수 있습니다.
'Delphi > 클래스' 카테고리의 다른 글
델파이 프로시저/함수를 스레드(Thread)로 실행 (0) | 2024.06.12 |
---|---|
시스템 정보 가져오기 (0) | 2023.06.15 |
쓰레드 추가설명 (0) | 2022.03.23 |
익명함수+스레드를 활용한 간단한 스레드 사용 방법 (0) | 2022.01.24 |
멀티스레드 GUI 동기화 (0) | 2022.01.14 |
댓글