Порядок выполнения работы. ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«КАЗАНСКИЙ (ПРИВОЛЖСКИЙ) ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

НАБЕРЕЖНОЧЕЛНИНСКИЙ ИНСТИТУТ

ЛАБОРАТОРНЫЙ ПРАКТИКУМ

Учебно-методическое пособие

По дисциплине

«ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ»

Набережные Челны

Лабораторный практикум: Учебно-методическое пособие по дисциплине «Объектно-ориентированное программирование» / Зубков Е.В. – Набережные Челны: Изд.-полигр.центр НЧИ К(П)ФУ, 2013. – 36 с.

Рассматриваются проблемы создания программного обеспечения и современные подходы их решения. Представлена технология объектно-ориентированного программирования, позволяющая создавать промышленные программы с большим числом строк кода. Приведены контрольные вопросы.

Для студентов направлений подготовки «Информатика и вычислительная техника», «Программная инженерия» и специальности «Автоматизированные системы обработки информации и управления».

Рецензент: к.т.н., Илюхин Алексей Николаевич

Печатается по решению совета факультета автоматизации и прогрессивных технологий Набережночелнинского института (филиала) ФГАУ ВПО «Казанский (Приволжский) федеральный университет».

© КФУ, 2013

© Зубков Е.В. 2013

Введение

Объектно-ориентированное программирование (ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов.

ООП возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Для дальнейшего развития объектно-ориентированного программирования часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование, КОП).

Первым языком программирования, в котором были предложены принципы объектной ориентированности, была Симула. В момент его появления в 1967 году в нём были предложены революционные идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Тем не менее, большинство концепций были развиты Аланом Кэем и Дэном Ингаллсом в языке Smalltalk. Именно он стал первым широко распространённым объектно-ориентированным языком программирования.

В настоящее время количество прикладных языков программирования (список языков), реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. В области системного программирования до сих пор применяется парадигма процедурного программирования, и общепринятым языком программирования является Cи. При взаимодействии системного и прикладного уровней операционных систем заметное влияние стали оказывать языки объектно-ориентированного программирования, такие как С#, Java и др.

Лабораторная работа № 1

Создание классов

1. Цель работы. Получение навыков в разработке программ с использованием классов.

Общие сведения

Классом называется фрагмент кода, которому предшествует зарезервированное слово class. Членами класса могут быть данные (они называются полями) и подпрограммы (они называются методами). По своей сути класс — это тип, то есть образец для создания объектов (так называются переменные типа класса). Основная форма синтаксиса объявления класса показана здесь:

[модификаторы] class <имя_класса>

{

<закрытые функции и переменные класса>

<открытые функции и переменные класса>

};

Модификаторы предназначены для уточнения объявления класса. С их помощью можно определить область видимости класса, возможность его наследования, готовность класса в целом и отдельных его членов к работе. Модификаторы задаются зарезервированными словами, перечисленными в таблице 1.

Таблица 1.

Модификаторы класса и его членов

Модификатор Пояснение
Public Класс или его член доступен из любой точки программы
internal Класс (член) доступен в сборке, в которой он определен
pritected Класс (член) доступен потомкам и только им
private Члены класса доступны только методам этого же класса
abstract Абстрактный класс; должен обязательно перекрываться в потомках
sealed Класс не может иметь наследников
static Определяет статических член класса. Для доступа к статическому члену можно не создавать объект класса — статические члены принадлежат не отдельному объекту, но классу как таковому. Если таким членом является поле или свойство, оно имеет одинаковое значение для всех экземпляров этого класса

В качестве примера следующий класс определяет тип, который мы назовем queue (очередь):

class queue

{

// закрытые элементы класса

private static int q=100; //Иницилизация переменной q и присваивание ей значения

private static char[] arrchar= new char[4] {'a','b','c','d'}; //Массив символов arrchar

// открытые элементы класса

public static int p = q; //Иницилизация переменной p и присваивание ей значения q

public static char ch = arrchar[0]; //Присваивание ch значения arrchar[0]

}

Данный класс содержит закрытые переменные q, arrchar, т.е. функции или переменные, не являющиеся членами класса, не имеют к ним доступа, и открытые переменные p и char. Именно так достигается инкапсуляция: доступ к определенным частям данных может быть строго контролируемым.

Для того, чтобы сделать части класса доступными из других частей программы, они должны быть объявлены с использованием ключевого слова public, которое и служит спецификатором доступа. Все переменные или функции, определенные после ключевого слова public, являются открытыми, т.е. доступными как для других членов класса, так и для любой другой части программы, в которой находится этот класс. Хотя можно иметь переменные с открытым доступом, лучше ограничить их использование или вовсе исключить их из употребления. Вместо этого следует сделать все данные закрытыми и контролировать доступ к ним с помощью функций, имеющих спецификатор доступа public. Таким образом открытые функции обеспечивают интерфейс к закрытым данным класса. Это позволяет реализовать инкапсуляцию.

Представленная ниже программа демонстрирует все части класса queue:

using System;

namespace Project1

{

class queue

{

// закрытые элементы класса

private static int q=50;

private static char[] arrchar= new char[4] {'a','b','c','d'};

// открытые элементы класса

public static int p = q;

public static char ch = arrchar[0];

}

class Executer

{

[STAThread]

static void Main()

{

Console.WriteLine(queue.p); // Вывод на экран значения переменной p

Console.WriteLine(queue.ch); // Вывод на экран значения переменной ch

Console.ReadLine(); // Ожидание нажатия клавиши Enter

}

}

}

Следует запомнить, что закрытые части объекта доступны только для функций или переменных, которые являются членами класса. Так, например, если написать команду Console.WriteLine(queue.q), то компилятор её не пропустит, выдав сообщение, что переменная q имеет защитный уровень.

Постановка задачи

Создать класс <имя класса> (имя класса задается в соответствии с выбранным вариантом), содержащий поля, которые можно использовать для хранения данных. Предусмотреть инициализацию переменных (полей) класса, помещение данных в переменные и извлечение данных.

Порядок выполнения работы

В главном меню системы программирования выберите команду FileNewProject или щелкните на соответствующей инструментальной кнопке. В окне New Project выберите пункт Console Application и щелкните на кнопке OK. В открывшемся окне в соответствии с вариантом задания напишите программу, использующую созданный вами класс.

Содержание отчета

5.1 Тема и цель работы.

5.2 Текст программы.

5.3 Результаты выполнения программы.

Приложение 1

Варианты заданий

№ варианта Имя класса Поле 1 Поле 2 Поле 3
Студент Ф.И.О. Специально сть № группы
Военнослужащий Ф.И.О. Род войск Звание
Процессор Фирма производитель Количество ядер Тактовая частота
Жесткий диск Фирма производитель Емкость Интерфейс
Корпус системного блока ПК Фирма производитель Цвет Выходная мощность блока питания
Монитор Фирма производитель Цвет Размер по диагонали
Принтер Фирма производитель Тип принтера Количество печатаемых страниц в минуту
Патч-корд Фирма производитель Тип кабеля Длина
Печатное издание Вид издания Тираж Формат
Легковой автомобиль Марка Цвет Максимальная скорость
Самолет Марка Крейсерская скорость Дальность полета
Флеш-карта Фирма производитель Стандарт Емкость
Преподаватель Ф.И.О. Кафедра Стаж работы
Лампа освещения Тип лампы Потребляемая мощность Выходная световая мощность
Сканер Тип сканера Фирма производитель Макс. разрешение
Оптический диск Тип диска Фирма производитель Емкость
Пишущая ручка Тип ручки Фирма производитель Стоимость
Грузовой автомобиль Марка Цвет Макс. грузоподъемность
Модем Тип модема Фирма производитель Макс.скорость передачи данных
Компьютерная сеть Топология Тип физической передающей среды Макс.скорость передачи данных

Наши рекомендации