Форум: "Прочее";
Текущий архив: 2010.09.19;
Скачать: [xml.tar.bz2];
Внизобъектно-ориентированное програмирование Найти похожие ветки
← →
shaman (2010-06-17 17:18) [0]Разработать структуру объекта "Электробритва". Объект должен иметь не менее пяти методов и не менее трех свойств. Разработать программу моделирования работы данного объекта.
← →
Сергей М. © (2010-06-17 17:20) [1]Метод "ЖужжатьИГреться" подойдет ?
← →
Демо © (2010-06-17 17:23) [2]
> shaman (17.06.10 17:18)
> Разработать структуру объекта "Электробритва". Объект должен
> иметь не менее пяти методов и не менее трех свойств. Разработать
> программу моделирования работы данного объекта.
Можно я не буду делать?
← →
KilkennyCat © (2010-06-17 17:44) [3]
> Сергей М. © (17.06.10 17:20) [1]
а метод "Брить" перекрыть "ЖестокоЭпилироватьБезжалостноИБеспощадно"
← →
test © (2010-06-17 17:47) [4]Психбольница в руках пациентов, Купер Алан
Как противостоять натиску компьютерных технологий, проникающих в нашу жизнь с ужасающей скоростью? Наши телефоны, фотокамеры, автомобили - все, что нас окружает, автоматизируются, программируются, создаются людьми, которые, стремясь получить выгоду от применения микросхем, уклонились от своей прямой обязанности - делать эти продукты простыми в применении.
И это не преувеличение, это реальность. Наша жизнь все больше концентрируется вокруг превратностей, странностей, решений и катастроф индустрии высоких технологий. Разработчики программ, устройств и технологий думают не так, как мы. Облеченные полномочиями исполнительные лица ни на что не влияют в мире высоких технологий - здесь всем заправляют инженеры. Мы разрешили пациентам завладеть психбольницей. Алан Купер предлагает решение проблемы: программированию должно предшествовать проектирование.
Объектно-ориентированный анализ и проектирование
с примерами приложений на С++
Гради Буч
Первая часть посвящена анализу сложности, присущей программным системам, в частности анализу того, как эта сложность проявляется. Мы вводим объектную модель как средство борьбы со сложностью. Мы рассматриваем основные элементы объектной модели: абстрагирование, инкапсуляцию, модульность, иерархию, типизацию, параллелизм, устойчивость. Мы задаемся такими глубинным вопросами как "Что такое класс?" и "Что такое объект?". Поскольку выявление осмысленных классов и объектов - ключевая задача объектно-ориентированного проектирования, значительное время мы уделяем вопросам классификации. В частности, мы рассматриваем подходы к классификации в других дисциплинах: биологии, лингвистике и психологии, а затем применяем полученные выводы к обнаружению классов и объектов внутри программных систем.
Казалось бы причем тут Google?
← →
test © (2010-06-17 17:54) [5]Сергей М. © (17.06.10 17:20) [1]
Не, это метод предка.
← →
MonoLife © (2010-06-17 18:12) [6]TBerdsk))
← →
test © (2010-06-17 18:17) [7]MonoLife © (17.06.10 18:12) [6]
Это кстате потомок, а не требуемый объект.
← →
Правильный$Вася (2010-06-17 19:14) [8]
> Разработать структуру объекта "Электробритва"
открываем паспорт любой бритвы и читаем
назначение и возможности - это методы
характеристики - это свойства
← →
Anatoly Podgoretsky © (2010-06-17 19:42) [9]> shaman (17.06.2010 17:18:00) [0]
У меня в бритве (реальной) только два метода, включить и выключить, что
могут делать остальные три?
← →
Правильный$Вася (2010-06-17 19:55) [10]
> что могут делать остальные три?
автоочистка
стрижка
выбривание в носу :)
← →
KilkennyCat © (2010-06-17 20:01) [11]учтите, что неправильно разработанная бритва вызывает помехи у телевизора
← →
Anatoly Podgoretsky © (2010-06-17 20:02) [12]> Правильный$Вася (17.06.2010 19:55:10) [10]
1 этого у меня нет, а вот 2 и 3 это не функции бритвы, а человека, бритва
там выступает как инкапсулированый объект.
И того с грехом попалам натянули на три метода.
Четвертый метод это проигрывание MP3 по USB
← →
KilkennyCat © (2010-06-17 20:02) [13]а если электробритву сунуть в розетку "радио", то будет тихий радио.
← →
Правильный$Вася (2010-06-17 20:05) [14]
> 2 и 3 это не функции бритвы, а человека
если у бритвы специальные ножи для этого, то это ее функции
хотя можно активацию ножа сделать и свойством, тогда действительно on/off будет, но это не так наглядно
← →
Jeer © (2010-06-17 20:28) [15]Фигня все это.. ООП, классы, члены, наследование..
Наиболее радикальной процедурой является использование топора :)
← →
Плохиш © (2010-06-17 20:37) [16]
> Четвертый метод это проигрывание MP3 по USB
А как же фотик на 25 мегапикселей с 50-кратным зумом и автофокусом? :o)
← →
Демо © (2010-06-17 20:42) [17]
> shaman (17.06.10 17:18)
> Разработать структуру объекта "Электробритва". Объект должен
> иметь не менее пяти методов и не менее трех свойств. Разработать
> программу моделирования работы данного объекта.
Методы:
1. Включить
2. Выключить
3. Зарядить
4. Использовать стриммер
5. Очистить
Свойства:
1. Марка
2. Цвет
3. Вес
← →
KilkennyCat © (2010-06-17 20:51) [18]хэндсфри не забудьте - брить руками уже не модно., и гаи прицепится
← →
test © (2010-06-17 20:55) [19]Jeer © (17.06.10 20:28) [15]
Топор - сборщик мусора уничтожает осиротевшие объекты.
← →
test © (2010-06-17 20:58) [20]Демо © (17.06.10 20:42) [17]
Методы:
Включить
Вылючить
Свойство:
Состояние
Уровень зарядки
Уровень загрязнения
Логичнее, а то свойства ни как не связаны с объектом и через них инфы ноль при использовании объекта.
← →
Демо © (2010-06-17 21:24) [21]
ТУстройство = class
private
FПроизводитель: String;
FВключено_ли: Boolean;
public
constructor Создать(ПРоизводитель: String); virtual; abstract;
destructor Уничтожить; override;
function Включить; virtual; abstract;
function Выключить; virtual; abstract;
end;
← →
Правильный$Вася (2010-06-17 21:30) [22]
> 4. Использовать стриммер
устройство записи на магнитной ленте? %))
← →
test © (2010-06-17 21:42) [23]Демо © (17.06.10 21:24) [21]
Теперь попробуй это использовать, даже в псевдо коде, у тебя можно 2 раза включить и выключить, так как доступа к переменной нет.
ТУстройство = class
private
FПроизводитель: String;
FВключено_ли: Boolean;
FУровень_заряда: float;
Fуровень_загрязнения%:float;
protected
fonStopЗарядка: TonStopЗарядкаEvent;
fonStopОчистка: TonStopЗарядкаEvent;
public
constructor Создать(ПРоизводитель: String); virtual; abstract;// virtual; abstract нафига?
destructor Уничтожить; override;
procedure Включить; virtual; abstract;//не возвращают значения значит процедуры
procedure Выключить; virtual; abstract;
procedure Зарядить;
procedure Очистить;
published
property вкл: boolean read FВключено_ли;
property заряд%: float read FУровень_заряда;
property уровень_загрязнения%: float read Fуровень_загрязнения%;
property название: String read FПроизводитель;
property onStopЗарядка: TonStopЗарядкаEvent read fonStopЗарядка write fonStopЗарядка;
property onStopОчистка: TonStopЗарядкаEvent read fonStopОчистка write fonStopОчистка;
Это так на вскидку
end;
← →
Anatoly Podgoretsky © (2010-06-17 22:17) [24]> Демо (17.06.2010 20:42:17) [17]
4. Использовать [с]триммер
4b. Не использовать [с]триммер
стриммер это ленточный накопитель
->>
Открыть триммер
Закрыть триммер
А триммер это "машинка" для стрижки, подравнивать усы, приспособа такая
← →
Демо © (2010-06-17 22:28) [25]
> Теперь попробуй это использовать, даже в псевдо коде, у
> тебя можно 2 раза включить и выключить, так как доступа
> к переменной нет.
Это ж заготовка для различных устройств. -)
Бритва лишь наследник от этого абстрактного класса.
А virtual и абстракт в конструкторе для того, чтобы для каждого устройства реализовать собственный конструктор - мало ли как создаётся каждое устройство (бритва, пылесос, и т.д). -))
← →
Демо © (2010-06-17 22:29) [26]
> 4. Использовать [с]триммер4b. Не использовать [с]триммер
> стриммер это ленточный накопитель
Ну да... Вот ведь как много одна буква значит-))
← →
Игорь Шевченко © (2010-06-17 22:32) [27]Демо © (17.06.10 22:28) [25]
А нафиг вообще такой класс ?
← →
DVM © (2010-06-17 22:34) [28]
> А триммер это "машинка" для стрижки, подравнивать усы, приспособа
> такая
а у меня триммер на даче траву косит
← →
Jeer © (2010-06-17 22:43) [29]Даже я помню, что такое триммер в авиации, а уж ИШ тем более должон :)
← →
Демо © (2010-06-17 22:51) [30]
> Игорь Шевченко © (17.06.10 22:32) [27]
> Демо © (17.06.10 22:28) [25] А нафиг вообще такой класс
> ?
Чтобы наследоваться от него-)
Предполагается, что конструктор - это эмуляция реального процесса создания устройства (например - пайка, сборка, закрепление крышки и т.п.).
В общем - своеобразный любительский конструктор.
← →
Сергей М. © (2010-06-17 22:58) [31]
> Jeer © (17.06.10 22:43) [29]
> я помню, что такое триммер в авиации
Он там тоже пробелы косит на носу и конце)
← →
Petr V. Abramov © (2010-06-17 23:07) [32]а если не предусмотрен exception на побрить колючую проволоку - двойка
← →
Игорь Шевченко © (2010-06-17 23:08) [33]Jeer © (17.06.10 22:43) [29]
Еще Олдридж упоминал, в "Последнем дюйме".
← →
Игорь Шевченко © (2010-06-17 23:16) [34]Демо © (17.06.10 22:51) [30]
> В общем - своеобразный любительский конструктор.
> ТУстройство = class
> private
> FПроизводитель: String;
> FВключено_ли: Boolean;
> public
> constructor Создать(ПРоизводитель: String); virtual; abstract;
>
> destructor Уничтожить; override;
> function Включить; virtual; abstract;
> function Выключить; virtual; abstract;
> end;
Тогда выброси из него
FПроизводитель: String;
FВключено_ли: Boolean;
и заодно обязательный параметр из конструктора
← →
Медвежонок Пятачок © (2010-06-17 23:27) [35]еще будет не лишним реализовать классовый метод
class function whereismyfuckingrazor : TKharkoff;
и метод
procedure Convert2TattooMachine;
← →
Anatoly Podgoretsky © (2010-06-17 23:48) [36]> Игорь Шевченко (17.06.2010 22:32:27) [27]
Чтобы бриться
← →
Anatoly Podgoretsky © (2010-06-17 23:48) [37]> Jeer (17.06.2010 22:43:29) [29]
А я функцию знаю!
← →
Сергей М. © (2010-06-20 22:35) [38]Зачморили парнишу)
А он так заплатить хотел)..
http://www.programmersforum.ru/showthread.php?t=104751
← →
test © (2010-06-21 00:01) [39]Сергей М. © (20.06.10 22:35) [38]
Ему тут бесплатно объяснили и пример кинули, какой жестокий форум ))
← →
Германн © (2010-06-21 03:37) [40]
> Сергей М. © (20.06.10 22:35) [38]
>
> Зачморили парнишу)
> А он так заплатить хотел)..
>
> http://www.programmersforum.ru/showthread.php?t=104751
>
А то и ты тут не при чём! :)
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2010.09.19;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.005 c