Абстрактные методы,все понятно(нет)
Модератор: Модераторы
pupsik
Понимаете, Вы ему хототите показать фрагментами, как это делается. А у человека нет общего понимания. Вот и надо ему прочесть что-то попроще и побыстрей. А то я предложил фундаментальную литературу. Может Вы знаете что порекомендовать?
Хотя пример, что Вы привели - хорош. Если он разбираться - хорошо, нет надо учебник.
Понимаете, Вы ему хототите показать фрагментами, как это делается. А у человека нет общего понимания. Вот и надо ему прочесть что-то попроще и побыстрей. А то я предложил фундаментальную литературу. Может Вы знаете что порекомендовать?
Хотя пример, что Вы привели - хорош. Если он разбираться - хорошо, нет надо учебник.
Последний раз редактировалось vvvch 24.06.2016 22:29:34, всего редактировалось 1 раз.
pupsik писал(а):Пойдём иным путём, без учебников: http://www.delphibasics.ru/Abstract.php
Добавлено спустя 4 минуты 48 секунд:
И избавляйте себя от плохой привычки:. Зачем это в классе?Код: Выделить всё
result:='.......'+'со стороной'+n+'см'+'имеет площадь:'+floatTostr((Square())+'см'+' '
+'и периметр:'+floatTostr((Perimetr())+'см.'+'
Ну чтобы проще вывести информацию в Label или showmessage (ну так "учат" нас
А где передаёщь в класс информацию и о длине сторон? Иначе зачем тебе свойство?
Bombucho ссылка что то прояснила?

не пугайте человека странными словами. Не всё сразуА где передаёщь в класс информацию и о длине сторон? Иначе зачем тебе свойство?
Bombucho писал(а):Пойдём иным путём, без учебников: http://www.delphibasics.ru/Abstract.php
В задании указывается, что методы должны быть абстрактными в примере по ссылке это условие выполняет эта строчка " procedure setArea; Virtual; Abstract; "
pupsik
О свойстве, там в условии, сказано.
Добавлено спустя 4 минуты 48 секунд:
Bombucho
В примере, приведённом тебе, не относись к нему как к догме, у тебя может быть по другому, просто тебе надо понять как это делается. И что ты хотел спросить?
Добавлено спустя 2 минуты 8 секунд:
Мы хотим выяснить, понимаешь ли ты пример? Или тебе нужно общая информация о ООП?
О свойстве, там в условии, сказано.
Добавлено спустя 4 минуты 48 секунд:
Bombucho
В примере, приведённом тебе, не относись к нему как к догме, у тебя может быть по другому, просто тебе надо понять как это делается. И что ты хотел спросить?
Добавлено спустя 2 минуты 8 секунд:
Мы хотим выяснить, понимаешь ли ты пример? Или тебе нужно общая информация о ООП?
vvvch писал(а):И что ты хотел спросить?
Я просто хотел спросить правильно ли я размышляю, и выполняю ли условия поставленного задания(если вы об этом)
Bombucho
Да, правильно, обрати внимание как это сделано в классе предка и как он переписывался в наследниках. И ещё, сразу привыкай думать о классе, как о чёрном ящике, у которого снаружи видны только методы public и если в этом же модуле - protected(из др. модулей они не видны), другие используется внутри самого класса. Для визуального класса есть ещё published но тебе это пока не надо. Да, то что описывается сразу после имени класса, те-же published, хоть это и не указывается.
И ещё, в книгах написано одна видимость, в реальности немного иная, проще всего это поверить компилятором, после имени класса и точки нажимаем Ctrl-пробел, и он "вываливает" список методов что можно увидеть и использовать.
Да, правильно, обрати внимание как это сделано в классе предка и как он переписывался в наследниках. И ещё, сразу привыкай думать о классе, как о чёрном ящике, у которого снаружи видны только методы public и если в этом же модуле - protected(из др. модулей они не видны), другие используется внутри самого класса. Для визуального класса есть ещё published но тебе это пока не надо. Да, то что описывается сразу после имени класса, те-же published, хоть это и не указывается.
И ещё, в книгах написано одна видимость, в реальности немного иная, проще всего это поверить компилятором, после имени класса и точки нажимаем Ctrl-пробел, и он "вываливает" список методов что можно увидеть и использовать.
Код: Выделить всё
unit Unit2;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils;
type
{ TFigura }
TFigura = class(TObject)
procedure get_name; Virtual; Abstract;
procedure get_perimetr; Virtual; Abstract;
procedure get_area; Virtual; Abstract;
end;
{ TKub }
TKub = class(TFigura)
fname : string;
fdlina : integer;
protected
procedure get_name; override;
procedure get_perimetr; override;
procedure get_area; override;
public
constructor Create;
property name : string read fname;
property dlina : integer read fdlina write fdlina;
end;
implementation
{ TKub }
procedure TKub.get_name;
begin
fname := ClassName;
end;
procedure TKub.get_perimetr;
begin
//
end;
procedure TKub.get_area;
begin
//
end;
constructor TKub.Create;
begin
get_name;
end;
end.Если не ошибаюсь: у вас будет нечто подобное. Имя вам не было необходимости выводить. Остальную арифметику сами "добросаете". Ну..у и, возможно, ошибся я.
- AlphaBlend
- постоялец
- Сообщения: 207
- Зарегистрирован: 22.05.2016 09:13:10
Bombucho Глядишь , Вы на форуме получите высшее образование 
