Цел и задачи на дисциплината 'Обектно-ориентираното програмиране-2 част'

  • Цел и задачи на дисциплината “Обектно-ориентираното програмиране-2 част”

     

    Дисциплината се основава на познанията на студентите, получени по дисциплините: Програмиране и използване на компютри І и ІІ част, Синтез и анализ на алгоритми и Обектно ориентирано програмиране І част. На базата на основните понятия и принципи на обектно-ориентираното програмиране (ООП) студентите се запознават с основите на програмния език Java2 и получават практически навици по програмиране на този език.

    Лекциите включват запознаване с основните различия между езиците С++ и Java2. Разглеждат се езиковите елементи, типовете данни и имплементационните различия по основни понятия като: класове, обекти, наследяване, полиморфизъм и др. След усвояване на особеностите в типовете данни, променливи, масиви, оператори за различните видове операции, оператори за управление на хода на програмата и др., се разглеждат структурата и принципите на дефиниране на класовете, включително спецификаторите за достъп. Отделя се внимание на такива понятия като: пакети, абстрактни класове, интерфейси и вътрешни класове, както и на принципите на тяхната реализация. По-нататък в курса се разглеждат такива важни елементи на езика като: изключенията, паралелните разклонения, входно-изходната система и контейнерите и итераторите. Обяснява се събитийният модел на Java и как той се използва при реализацията на аплетите. Лабораторните упражнения и курсовата работа имат за цел получаване на практически навици при програмиране на Java2.


    Съдържание

    Лекции

    Съдържание

    Брой часове

    1

     

    Въведение в дисциплината.

    Същност на виртуалната машина (JVM). Разлики при изпълнението на кода между C++ и Java. Спецификатор static. Главна програма на приложение. Аргументи на командния ред.

    2

     

    2

     

     

    Основни елементи на езика. Прости и референтни типове данни. Променливи.  Видимост на променливите. Спецификатор final. Инициализация на променливите.Низове. Масиви. Структури и обединения. Базови оператори. Оператори за управление на хода на програмата. Разлики спрямо C++.

    3

     

    3

     

    Класове и обекти. Членове на класовете - полета и методи. Конструктори. Ключовите думи super и this. Взаимодействие между обектите. Наследяване. Йерархия на класовете. Клас  Object. Предекларация на методи. Обекти и референции. Обектите като параметри. Полиморфизъм. Разлики спрямо C++.

    6

     

    4

     

    Пакети - създаване и ползване. Връзка между пакети и именни пространства на  C++. Разлики спрямо C++.

    1

     

    5

     

    Абстрактни класове и интерфейси. Множествено наследяване. Вграждане на класове. Разлики спрямо C++.

    3

     

    6

    Изключения. Стандартни изключения. Дефиниране и ползване на собствени изключения.

    2

     

    7

     

    Контейнери и итератори. Контейнери от тип Collection. Контейнери от тип Map.

    6

     

    8

     

    Входно-изходна система. Входно-изходните потоци на Java2. Работа с файлове. Програмни канали (тръби). Сериализация на обектите. Обектите System.in и System.out.

    3

     

    9

     

    Паралелни разклонения. Създаване на разклонения. Нишки, реагиращи на събития. Приоритетност, синхронизация и жизнен цикъл на нишките. Демони.

    4

     

     

    Общо

    30 часа

    ЛИТЕРАТУРА