Главная » Статьи » Программирование в Delphi |
Разработать иерархию классов, используя наследования
Тема. Объекты. Наследование. Разработать и реализовать иерархию классов для описанных объектов предметной области, используя механизмы наследования. Проверить ее на тестовом примере, с демонстрацией всех возможностей разработанных классов на конкретных данных. Объект – доска. Параметры: два целых числа – длина и ширина, Методы: инициализирующий, определения площади и возвращающие значения длины и ширины. Объект – доска. Параметры: длина, ширина и толщина. Методы: инициализирующий, определения объема и вывода параметров и объема. Исходный код программы Delphi: Code program Project3; {$APPTYPE CONSOLE} uses SysUtils; type TDoska2D = class (TObject) protected W, L:Integer; public procedure Init(w_,l_:Integer); function Length:Integer; function Width:Integer; function S:integer; end; TDoska3D = class (TDoska2D) protected H:Integer; public procedure Init(w,l,h_:Integer); function V:integer; function Height:integer; procedure print(); end; { TODO -oUser -cConsole Main : Insert code here } { TDoska2D } procedure TDoska2D.Init(w_, l_: Integer); begin W := w_; L := l_; end; function TDoska2D.Length: Integer; begin Result:=L; end; function TDoska2D.S: integer; begin Result:= Width*Length; end; function TDoska2D.Width: Integer; begin Result:=W; end; { TDoska3D } procedure TDoska3D.Init(w, l, h_: Integer); begin Inherited Init(w,l); H:=h_; end; function TDoska3D.V: integer; begin Result:= S*H; end; function TDoska3D.Height: integer; begin Result:= S*H; end; procedure TDoska3D.print; begin Writeln('V:',V); end; var W,L,H:Integer; Doska2d:TDoska2D; Doska3d:TDoska3D; begin Writeln(' - - - - - '); Writeln (' Doska 2D '); Write('Width: '); Readln(W); Write('Length: '); Readln(L); Doska2d:=TDoska2D.Create; Doska2d.Init(w,l); Writeln('S:',Doska2d.S); Writeln; Writeln(' - - - - - '); Writeln (' Doska 3D '); Write('Width: '); Readln(W); Write('Height: '); Readln(H); Write('Length: '); Readln(L); Doska3d:=TDoska3D.Create; Doska3d.Init(w,l,h); Doska3d.print(); Writeln; readln; end. Источник: http://www.codingrus.ru/ | |
Просмотров: 3119 | Рейтинг: 4.0/3 |
Всего комментариев: 0 | |