none
C#, теория ООП, need help RRS feed

  • Общие обсуждения

  • Здравствуйте,

    Вернулся к основам программирования. До этого писал узкоспециализированное приложение основанное на обработке событий с использованием библиотеки и службы брокера. Есть несколько банальных вопросов. Будет у кого время ответить - СПАСИБО! Вопросы появились после прочтения первых глав книги (1)"Объектно-ориентированный анализ и проектирование" Буч, Максимчук (http://www.ozon.ru/context/detail/id/3905587/) совместно с (2)"Visual C# Базовый курс" (http://www.ozon.ru/context/detail/id/4362602/).

    1. Правильно ли я понимаю Объектно-ориентированный подход:

    1.1.Система "Автомобиль" - система взаимосвязанных объектов (или экземпляров различных классов типа: "двигатель", "подвеска", и т.д. однако на любом уровне абстракции все можно назвать объектом? в конце концов мы тоже можем создать объект с нуля без использования готового класса.)

    1.2.Если объекты взаимодействуют друг с другом зачем тогда понятие Модульности приложений и их взаимосвязь? это же одно и тоже!? Цитата из (1) книги:

    "Объект позволяет определить четкие границы отдельной абстракции, а инкапсуляция и модульность создают барьер между абстракциями". Получается что создавая объект я использую некую абстракцию от несущественного, т.е. сначала абстракция затем реализация  ее в объекте? Значит и объект и абстракция (не абстрагирование) одно и тоже?

    Теперь понятно почему у меня каша в голове?

    2. Для изучение программирования на C# может мне чего другого почитать нежели книга (2) Базовый курс?

    Как то там круто все начинаеться с 8 главы (про ООП). Кто-нибудь может одобрить эту книжку?

    3. Если пойти вперед и задуматься о написании игр с помощью C# что означают термины:

    3.1. Игра написана на C#/С++ с использованием Движка такого то?

    3.2. что собой представляют DirectX, XNA для программиста и для языка? Набор библиотек? Среду для написания, компиляции? Или и то и другое?

    Своими силами можно чего-нибудь добиться? я имею ввиду написание игры ну или приложения Windows имея компьютер с VS 2008 знания о языке программирования? или нужен коллектив по типу проектировщик-разработчик-инвестор и кучу знаний о других технологий?

    Спасибо!


    "...when you get the money, you get the power. Then when you get the power you get the women"
    5 января 2011 г. 16:50

Все ответы

  • 3.2. что собой представляют DirectX, XNA для программиста и для языка? Набор библиотек? Среду для написания, компиляции? Или и то и другое?

    Добрый вечер!

    Посмотри по этому поводу вот тут: Что для чего лучше подходит ? WPF , XNA , Managed DirectX


    E-mail: Svatoslav.Pankratov@gmail.com
    5 января 2011 г. 19:42
  • 2. Для изучение программирования на C# может мне чего другого почитать нежели книга (2) Базовый курс?

    Как то там круто все начинаеться с 8 главы (про ООП). Кто-нибудь может одобрить эту книжку?

    Посмотрите эти книги:

    1) Эндрю Троелсен "Язык программирования С# 2008 и платформа .NET 3.5"

    2) Михаил Фленов "Библия C#" 

    3) Джеффри Рихтер "CLR via C#. Программирование на платформе Microsoft .NET Framework 2.0 на языке C#"


    E-mail: Svatoslav.Pankratov@gmail.com
    10 января 2011 г. 20:24
  • Была недавно статья на хабре про ООП, почитайте её - Мысли об ООП


    Для связи [mail]
    12 января 2011 г. 6:56
  • "Объект позволяет определить четкие границы отдельной абстракции, а инкапсуляция и модульность создают барьер между абстракциями". Получается что создавая объект я использую некую абстракцию от несущественного, т.е. сначала абстракция затем реализация  ее в объекте? Значит и объект и абстракция (не абстрагирование) одно и тоже?

    Проще говоря: объект - это некая самостоятельная единица(сущность), которая чётко определена. Инкапсуляция  - это способ, благодаря которому сам объект заботится о том, как он будет работать (т.е. в случае с автомобилем, нам необязательно знать, как работает двигатель, чтобы управлять автомобилем.. для нас это скрыто... когда мы говорим, что автомобиль нас перевозит, мы не говорим, что это двигатель нас перевозит.. т.е. автомобиль - это некая неделимая смысловая единица. это и называется инкапсуляция: мы абстрагируемся от механизмов внутри объекта. Для конечного пользователя это выглядит  как Машина.Ехать(), а такие вещи,. как ПодатьВпрыскБезина(),УвеличитьТягуНаРемень(). и т.д..остаются скрытыми).. Модульность: когда мы собираем автомобиль, мы составляем его из других механизмов, которые сами по себе тоже являются сущностями... чтобы не вдаваться в детали вплоть до гайки - мы берём готовый модуль и его используем.  Когда применяется термин "абстракция" - понимают упрощённую до нужной для решения задачи модель реальной жизни. Выражена она в объекте. т.е. любой объект - это абстракция, т.к. она только частично описывает реальную сущность.

    Надеюсь, не запутал=)

    12 января 2011 г. 13:01