Object Pascal/Obiekty object
Obiekty zachowują się podobnie jak rekordy. Mają jednak metody i obsługują dziedziczenie. Nie obsługują za to wariantów.
Składnia rekordu
edytujprogram obiektO;
type
samochod = object {deklaracja obiektu}
kolor: String;
marka: String;
ilosc: Word;
procedure sprzedane(ile: Word); {metoda - procedura}
end;
dostawczy = object(samochod) {dziedziczenie}
ladownosc: Cardinal;
function CzySieZmiesci(ile: Cardinal): boolean; {metoda - funkcja}
end;
{implementacje metod}
procedure samochod.sprzedane(ile: Word);
begin
ilosc := ilosc - ile;
end;
function dostawczy.CzySieZmiesci(ile: Cardinal): boolean;
begin
CzySieZmiesci := ladownosc >= ile;
end;
var
OpisSamochodu1: samochod;
OpisSamochodu2: dostawczy;
begin
OpisSamochodu1.kolor := 'Niebieski';
OpisSamochodu1.marka := 'Honda';
OpisSamochodu1.ilosc := 7;
Writeln('Marka Samochodu 1: ', OpisSamochodu1.marka);
Writeln('Ilość na stanie: ', OpisSamochodu1.ilosc);
OpisSamochodu2.kolor := 'Szary';
OpisSamochodu2.marka := 'Żuk';
OpisSamochodu2.ilosc := 5;
OpisSamochodu2.ladownosc := 11500;
Writeln('Marka Samochodu Dostawczego 2: ', OpisSamochodu2.marka);
Writeln('Ilość na stanie: ', OpisSamochodu2.ilosc);
if OpisSamochodu2.CzySieZmiesci(10000) then
begin
Writeln('Samochód spełnia wymagania firmy X. Firma X kupuje dwie sztuki.');
OpisSamochodu2.sprzedane(2);
Writeln('Nowa ilość na stanie: ', OpisSamochodu2.ilosc);
end
else
Writeln('Samochód nie spełnia wymagań firmy X');
Readln;
end.