Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
3-1245325959
vanatage10
2009-06-18 15:52
2010.09.19
Как обновить значение в DBgrid измененное в другой программе


15-1277320579
TStas
2010-06-23 23:16
2010.09.19
Можно ли выходить в интернет с двух компов?


15-1277470736
12
2010-06-25 16:58
2010.09.19
Киньтесь ссылкой на архив иконок


2-1277362042
ther
2010-06-24 10:47
2010.09.19
назначение клавишы для визарда/эксперта


2-1277152731
Askalot
2010-06-22 00:38
2010.09.19
Тормоза





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский