Introducción

En este tema, exploraremos los conceptos fundamentales de la Programación Orientada a Objetos (POO) en Delphi/Object Pascal, centrándonos en las clases y los objetos. Estos son los bloques de construcción esenciales para cualquier aplicación orientada a objetos.

Conceptos Clave

  1. Clase: Una plantilla o modelo que define las propiedades y comportamientos (métodos) comunes a todos los objetos de ese tipo.
  2. Objeto: Una instancia de una clase. Es una entidad concreta que tiene un estado y un comportamiento definido por su clase.
  3. Propiedades: Atributos o datos que describen el estado de un objeto.
  4. Métodos: Funciones o procedimientos que definen el comportamiento de un objeto.

Definición de una Clase

En Delphi, una clase se define utilizando la palabra clave class. Aquí hay un ejemplo básico de una clase llamada TPerson:

type
  TPerson = class
  private
    FName: string;
    FAge: Integer;
  public
    constructor Create(Name: string; Age: Integer);
    procedure DisplayInfo;
  end;

Explicación del Código

  • type: Define un nuevo tipo.
  • TPerson = class: Declara una nueva clase llamada TPerson.
  • private: Sección donde se declaran los campos privados de la clase. Estos campos solo son accesibles desde dentro de la clase.
    • FName: Un campo privado que almacena el nombre de la persona.
    • FAge: Un campo privado que almacena la edad de la persona.
  • public: Sección donde se declaran los métodos y propiedades públicas de la clase. Estos son accesibles desde fuera de la clase.
    • constructor Create(Name: string; Age: Integer): Un constructor que inicializa una nueva instancia de TPerson.
    • procedure DisplayInfo: Un método que muestra la información de la persona.

Creación de Objetos

Para crear un objeto de la clase TPerson, utilizamos el constructor definido en la clase:

var
  Person: TPerson;
begin
  Person := TPerson.Create('John Doe', 30);
  Person.DisplayInfo;
end;

Explicación del Código

  • var Person: TPerson: Declara una variable Person de tipo TPerson.
  • Person := TPerson.Create('John Doe', 30): Crea una nueva instancia de TPerson y la asigna a la variable Person.
  • Person.DisplayInfo: Llama al método DisplayInfo del objeto Person.

Implementación de Métodos

A continuación, implementamos el constructor y el método DisplayInfo de la clase TPerson:

constructor TPerson.Create(Name: string; Age: Integer);
begin
  FName := Name;
  FAge := Age;
end;

procedure TPerson.DisplayInfo;
begin
  WriteLn('Name: ', FName);
  WriteLn('Age: ', FAge);
end;

Explicación del Código

  • constructor TPerson.Create(Name: string; Age: Integer): Implementa el constructor de la clase TPerson.
    • FName := Name: Asigna el valor del parámetro Name al campo privado FName.
    • FAge := Age: Asigna el valor del parámetro Age al campo privado FAge.
  • procedure TPerson.DisplayInfo: Implementa el método DisplayInfo de la clase TPerson.
    • WriteLn('Name: ', FName): Muestra el nombre de la persona.
    • WriteLn('Age: ', FAge): Muestra la edad de la persona.

Ejercicio Práctico

Ejercicio

  1. Define una clase TCar con las siguientes propiedades privadas:
    • FMake: Marca del coche (string).
    • FModel: Modelo del coche (string).
    • FYear: Año del coche (Integer).
  2. Implementa un constructor que inicialice estas propiedades.
  3. Implementa un método DisplayInfo que muestre la información del coche.

Solución

type
  TCar = class
  private
    FMake: string;
    FModel: string;
    FYear: Integer;
  public
    constructor Create(Make, Model: string; Year: Integer);
    procedure DisplayInfo;
  end;

constructor TCar.Create(Make, Model: string; Year: Integer);
begin
  FMake := Make;
  FModel := Model;
  FYear := Year;
end;

procedure TCar.DisplayInfo;
begin
  WriteLn('Make: ', FMake);
  WriteLn('Model: ', FModel);
  WriteLn('Year: ', FYear);
end;

var
  Car: TCar;
begin
  Car := TCar.Create('Toyota', 'Corolla', 2020);
  Car.DisplayInfo;
end;

Explicación del Código

  • TCar = class: Declara una nueva clase llamada TCar.
  • private: Sección donde se declaran los campos privados de la clase.
    • FMake: Almacena la marca del coche.
    • FModel: Almacena el modelo del coche.
    • FYear: Almacena el año del coche.
  • public: Sección donde se declaran los métodos y propiedades públicas de la clase.
    • constructor Create(Make, Model: string; Year: Integer): Un constructor que inicializa una nueva instancia de TCar.
    • procedure DisplayInfo: Un método que muestra la información del coche.
  • Car := TCar.Create('Toyota', 'Corolla', 2020): Crea una nueva instancia de TCar y la asigna a la variable Car.
  • Car.DisplayInfo: Llama al método DisplayInfo del objeto Car.

Conclusión

En esta sección, hemos aprendido los conceptos básicos de las clases y los objetos en Delphi/Object Pascal. Hemos visto cómo definir una clase, crear objetos y cómo implementar métodos. Estos conceptos son fundamentales para la Programación Orientada a Objetos y serán la base para temas más avanzados en los próximos módulos.

Curso de Programación en Delphi/Object Pascal

Módulo 1: Introducción a Delphi/Object Pascal

Módulo 2: Estructuras de Control y Procedimientos

Módulo 3: Trabajando con Datos

Módulo 4: Programación Orientada a Objetos

Módulo 5: Características Avanzadas de Delphi

Módulo 6: Desarrollo de GUI con VCL y FMX

Módulo 7: Desarrollo Web y Móvil

Módulo 8: Mejores Prácticas y Patrones de Diseño

Módulo 9: Proyecto Final

© Copyright 2024. Todos los derechos reservados