ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.12.2025
Просмотров: 3204
Скачиваний: 1
for(;;)
{
// Ввод числа и выход из цикла, если введена пустая]
//строка
Console . W r i t e L i n e ( "Введите число с плавающей точкой") string sNumber = C o n s o l e . R e a d L i n e О ;
if (sNumber.Length == 0)
{
b r e a k ;
}
double dNumber = D o u b l e . P a r s e ( s N u m b e r ) ;
//Ввод модификаторов форматирования, разделенных
//пробелами
Console . WriteLine("Введите модификаторы " +
|
|
"форматирования, разделенные " + , |
||
|
|
" п р о б е л а м и " ) ; |
||
chart] |
separator = |
{' |
' } ; |
|
string |
sFormatString |
= |
C o n s o l e . R e a d L i n e ( ) ; |
|
string[] sFormats |
= |
sFormatString . Split(separator) ; |
||
//Цикл по введенным модификаторам
foreach(string s in sFormats)
{
if (s.Length != 0)
{
//Создание управляющего элемента форматирования!
//из введенного модификатора
string sFormatCommand = " {0 : " + s + " } " ;
//Вывод числа с применением созданного
//управляющего элемента форматирования Console . Write(
|
"Модификатор |
{ о } |
дает ", sFormatCommand); |
|
try |
|
|
|
{ |
|
|
|
Console . WriteLine(sFormatCommand, d N u m b e r ) ; |
||
|
} |
|
|
|
catch(Exception) |
|
|
|
{ |
|
|
|
Console . WriteLine("<Неверный м о д и ф и к а т о р > " ) ; |
||
|
} |
|
|
|
C o n s o l e . W r i t e L i n e ( ) ; |
|
|
|
} |
|
|
} |
} |
|
|
|
|
|
|
// |
Ожидаем подтверждения |
пользователя |
|
Console . WriteLine("Нажмите <Enter> для " + |
|||
|
"завершения п р о г р а м м ы . . . " ) ; |
||
C o n s o l e . R e a d ( ) ; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
220 |
Часть |
III. |
Объектно-основанное программировал |
Часть IV
Объектно-ориентированное программирование
Объектно-ориентированное программирование — термин, вызывающий у программистов наибольший выброс адреналина в кровь. Так, объ ектно-ориентированным языком программирования является С++ — и в этом его главное отличие от старого доброго С. К объектноориентированным языкам определенно относится и Java, как и еще добрая сотня языков, придуманных за последний десяток лет. Но что же это такое — объектно-ориентированный! Зачем это надо? и надо ли вообще? стоит ли использовать это в своих программах?
В этой части вы столкнетесь с возможностями С#, которые делают
его объектно-ориентированным языком программирования. Объект но-ориентированное программирование — это не просто работа с объектами; это — мощь и гибкость программ при меньших затра чиваемых усилиях, это элегантность проекта, словом — это все, из ложенное в данной части книги.
Глава 10
Что такое объектно-ориентированное программирование
>Основы объектно-ориентированного программирования
>Абстракция и классификация
>Важность объектно-ориентированного программирования
этой главе будут даны ответы на два основных вопроса — какие концепции ле жат в основе объектно-ориентированного программирования и чем они отлича
ются от уже рассмотренных концепций функционального программирования.
Когда мы с сыном смотрим футбол, я подчас испытываю непреодолимую тягу к вред ным для здоровья, но таким вкусным кулинарным изыскам, в частности, к мексиканским блюдам. Достаточно бросить на тарелку чипсы, бобы, сыр, приправы и пять минут зажа ривать эту массу в микроволновой печи.
Для того чтобы воспользоваться печью, следует открыть ее дверцу, поместить внутрь полуфабрикат и нажать несколько кнопок на передней панели. Через пару минут блюдо готово (только не стойте перед печью, а то ваши глаза начнут светиться в темноте).
Обратите внимание на то, чего не делалось при использовании микроволновой печи.
Ничего не переключалось и не изменялось внутри печи. Чтобы установить для нее рабочий режим, существует интерфейс — лицевая панель с кнопками и неболь шой индикатор времени; это все, что нужно.
Не перепрограммировался процессор внутри печи, даже если прошлый раз гото вилось абсолютно другое блюдо.
Не было необходимости смотреть внутрь печи.
При приготовлении блюд не надо было беспокоиться о внутреннем устройстве пе чи — даже если вы работаете главным инженером по производству таких печей.
В концепции уровней абстракции очень важной частью является классификация. Опять-таки, если бы я спросил моего сына: "Что такое микроволновая печь?" — он бы наверняка ответил: "Это печь, которая...". Если бы затем последовал вопрос: "А что та кое печь?" — он бы ответил что-то вроде: "Ну, это кухонный прибор, который...". (При попытке выяснить у него, что же такое кухонный прибор, он наверняка бы спросил, сколько можно задавать дурацких вопросов.)
Из детских ответов становится ясно, что ими печь воспринимается как один из экзем пляров вещей, называемых микроволновыми печами. Кроме того, печь является подраз делом духовок, а духовки относятся к типу кухонных приборов.
В объектно-ориентированном программировании конкретная микроволновая печь является экземпляром класса микроволновых печей. Класс микроволно вых печей является подклассом печей, который, в свою очередь, является под классом кухонных приборов.
Люди склонны заниматься классификацией. Все вокруг увешано ярлыками. Мы дела ем все для того, чтобы уменьшить количество вещей, которые надо запомнить. Вспом ните, например, когда вы первый раз увидели "Пежо" или "Рено". Возможно, в рекламе и говорилось, что это суперавтомобиль, но мы-то с вами знаем, что это не так. Это ведь просто машина. Она имеет все свойства, которыми обладает автомобиль. У нее есть руль, колеса, сиденья, мотор, тормоза и т.д. И можно поспорить, что многие водили бы такую штуку без всяких инструкций.
Но не будем тратить место в книге на описание того, чем этот автомобиль похож на другие. Следует знать лишь то, что это "машина, которая...", и то, чем она отличается от других машин (например, ценой). Теперь можно двигаться дальше. Легковые автомоби ли являются таким же подклассом колесных транспортных средств, как грузовики и пи капы. При этом колесные транспортные средства входят в состав транспортных средств наравне с кораблями и самолетами.
Зачем вообще нужна эта классификация, это объектно-ориентированное программи рование? Ведь оно влечет за собой массу трудностей. Тем более, что уже имеется гото вый механизм функций. Зачем же что-то менять?
Иногда может показаться, что легче разработать и создать микроволновую печь спе циально для какого-то блюда и не строить универсальный прибор на все случаи жизни. Тогда на лицевую панель не нужно было бы помещать никаких кнопок, кроме кнопки
СТАРТ. Блюдо всегда готовилось бы одинаковое время, и можно было бы избавиться от всех этих бесполезных кнопок типа РАЗМОРОЗКА или Т Е М П Е Р А Т У Р А П Р И Г О Т О В ЛЕНИЯ. Все, что требовалось бы от такой печи, — это чтобы в нее помещалась одна та
релка с полуфабрикатом. Да, но что же тогда получится? Ведь при этом кубический фут пространства использовался бы для приготовления всего одной тарелки закуски!