Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Федеральное государственное автономное образовательное учреждение




 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

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

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

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

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

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

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

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

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

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


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

 

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

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

 

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

 

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

 

 

© КФУ, 2013

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

 


Введение

 

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

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

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

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

 

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

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

 

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

 

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

Классом называется фрагмент кода, которому предшествует зарезервированное слово 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 имеет защитный уровень.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...