Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Объектно-ориентированное программирование

Читайте также:
  1. B. ПРОГРАММИРОВАНИЕ
  2. II) ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
  3. Web-программирование на стороне клиента.
  4. Архитектура и организация подсистемы DMA (КПДП) в ПК. Управляющая информация и программирование
  5. Визуальное объектно-ориентирование программирование. Инкапсуляция, наследование, полиморфизм. Основные объекты и их свойства, методы и события
  6. Декларативное программирование
  7. Лекция 1: введение в программирование.

или ООП (object-oriented programming) -

методология программирования, основанная на

представлении программы в виде совокупности

объектов, каждый из который является реализацией

определенного типа, использующая механизм

пересылки сообщений и классы, организованные в

иерархию наследования.

ООП характеризуется следующими принципами:

- Все является объектом

- Вычисления осуществляются путем взаимодействия

(обмена данными) между объектами, при котором

один объект требует, чтобы другой объект выполнил

некоторое действие; объекты взаимодействуют,

посылая и получая сообщения; сообщение - запрос на

выполнение действия, дополненный набором

аргументов, которые могут понадобиться при

выполнении действия;

- Каждый объект имеет независимую память, которая

состоит из других объектов;

- Каждый объект является представителем класса,

который выражает общие свойства объектов

данного типа;

- В классе задается функциональность

(поведение объекта); тем самым все объекты, которые

являются экземплярами одного класса, могут

выполнять одни и те же действия;

- Классы организованы в единую древовидную

структуру с общим корнем, называемую иерархией

наследования; память и поведение, связанное с

экземплярами определенного класса, автоматически

доступны любому классу, расположенному ниже в

иерархическом дереве.

Для поддержки принципов

объектно-ориентированного программирования

все ООП-языки, включая C#, имеют 3 характерных

черты: инкапсуляцию, полиморфизм и

наследование.

Наследование (inheritance) - свойство объектов,

посредством которого экземпляры класса получают

доступ к данным и методам классов-предков без их

повторного определения. Наследование позволяет

различным типам данных совместно использовать

один и тот же код, приводя к уменьшению его

размера и повышению функциональности.

 

6.Понятие класса, объекта. Члены класса – поля и методы. Создание объекта. Область видимости объекта

Класс - шаблон, который определяет форму

объекта. Он задает как данные, так и код,

который оперирует этими данными. C#

использует спецификацию класса для создания

объекта. Объекты - экземпляры класса. Таким

образом, класс - это множество намерений

(планов), определяющих, как должен быть

построен объект. Важно четко понимать

следующее: класс - логическая

абстракция. О ее реализации нет смысла говорить

до тех пор, пока не создан

объект класса, и в памяти не появилось физическое

его представление.

И еще. Вспомните, что методы и переменные,

составляющие класс, называются

членами класса.

Общая форма определения класса

Определяя класс, вы определяете данные, которые

он содержит, и код,

манипулирующий этими данными. Несмотря на то

что очень простые классы могут

включать только код или только данные,

большинство реальных классов содержат и

то, и другое.

Данные содержатся в переменных экземпляров,

определяемых класCOM, а код - в

методах. Однако важно с самого начала отметить,

что класс определяет также ряд

специальных членов данных и методов-членов,

например статические переменные,

константы, конструкторы, деструкторы, индекса

торы, события, операторы и свойства. Пока мы

ограничимся рассмотрением переменных экземпляров

и методов класса, а к концу главы познакомимся с

конструкторами и деструкторами. Остальные

типы членов класса описаны в последующих главах.

Класс создается с помощью ключевого слова class.

Общая форма определения класса,

который содержит только переменные экземпляров и

методы, имеет следующий вид:

class имя_класса

{

Объявление переменных экземпляров.

доступ тип переменная!;

доступ тип переменная2;

...

доступ тип переменная n;

}

Область видимости - часть текста программы,

в которой может быть использован данный объект.

Объект считается видимым в блоке или в исходном

файле, если в этом блоке или файле известны имя и

тип объекта.Объект может быть видимым в пределах

блока, исходного файла или во всех исходных файлах,

образующих программу. Это зависит от того, на каком

уровне объявлен объект: на внутреннем, т.е. внутри

некоторого блока, или на внешнем, т.е. вне всех

блоков. Если объект объявлен внутри блока, то он

видим в этом блоке, и во всех внутренних блоках.

Если объект объявлен на внешнем уровне, то он

видим от точки его объявления до конца данного

исходного файла. Объект может быть сделан глобально

видимым с помощью соответствующих объявлений во

всех исходных файлах, образующих программу.

 

7.Понятие метода в C#. Формальные и фактические параметры. Способы передачи параметров

Методы - подпрограммы, которые управляют

данными, определенными в классе, и во многих

случаях обеспечивают доступ к данным. Обычно

остальные части программы взаимодействуют с

классом при помощи его методов. Метод содержит

один или несколько операторов. В профессионально

написанном C#- коде каждый метод выполняет только

одну задачу. В качестве имени метода может

использоваться любой действительный модификатор.

Ключевые слова не могут быть именами методов,

имя Main () является зарезервированным для метода,

с которого начинается выполнение программ.

Общий синтаксис метода выглядит так:

access ret-type name (parameter-list)

{

тело метода

}

access - модификатор, который указывает, какие части

вашей программы могут иметь доступ к методу.

ret-type - указывает тип данных, возвращаемых методом.

name - имя метода.

Если метод не возвращает никакого значения,

он должен быть указан как имеющий тип void.

parameter-list (список параметров) - последовательность

разделенных запятыми пар «тип - идентификатор».

С помощью параметров методу передаются из

программы значения, тип которых обязательно должен

быть указан. Параметрами в основном являются

переменные, которые принимают значения аргументов,

передаваемых методу его вызове. Если метод не имеет

параметров, то список параметров будет пустым.

Различают формальные и фактические параметры.

Формальные параметры располагаются в подпрограмме.

Они определяют, как будет происходить обработка

конкретных значений этих параметров. Фактические

параметры указываются при обращении к подпрограмме.

При вызове подпрограммы значения фактических

параметров автоматически передаются в переменные,

являющиеся формальными параметрами. После чего

начинается выполнение подпрограммы.

Общий вид заголовка процедуры:

Procedure <имя> (<список переменных>);

Существует несколько способов передачи параметров

в подпрограмму.

Передача параметров по значению.

Формальному параметру присваивается значение

фактического параметра. В этом случае формальный

параметр будет содержать копию значения,

имеющегося в фактическом, и никакое воздействие,

производимое внутри подпрограммы на формальные

параметры, не отражается на параметрах фактических.

Передача параметров по ссылке.

В формальный параметр может быть помещён сам

фактический параметр (обычно это реализуется

путём помещения в формальный параметр

ссылки на фактический). При этом любое изменение

формального параметра в подпрограмме

отразится на фактическом параметре —

оба параметра во время вызова подпрограммы суть

одно и то же. Параметры, передаваемые по ссылке,

дают возможность не только передавать параметры

внутрь подпрограммы, но и возвращать вычисленные

значения в точку вызова. Для этого параметру

внутри подпрограммы просто присваивается

нужное значение, и после возврата из подпрограммы

переменная, использованная в качестве фактического

параметра, получает это значение.

 

 

8.Целые типы данных в C#. Ограничения по значению.

C# определены девять целочисленных типов

данных: char, byte, sbyte, short, ushort, int, uint, long,

ulong. Тип данных char в основном применяется

для представления символов.

Byte 8 От 0 до 255

Sbyte 8 От -121 до 127

Short 16 От -32768 до 32767

Ushort 16 От 0 до 65535

Int 32 От -2147483648 до 2147483647

Uint 32 От 0 до 4294967295

Long 64 От -92233720368554775808 до

Ulong 64 От 0 до 18446774073709551615

В C# определены как знаковые, так и без знаковые

варианты целочисленных типов. Различие между

ними состоит в способе интерпретации старшего

типа целого числа. Если указывается знаковое целое,

то компилятор будет генерировать код, в котором

предполагается интерпретация старшего бита целого

числа как флага знака. Если флаг знака 0, то это

положительное число: если флаг знака 1, то число

отрицательное. Отрицательные числа практически

всегда представлены с использованием метода

двоичного дополнения. В этом методе все биты числа

(за исключением флага знака) инвертируются, затем

к этому числу прибавляется единица, в завершение

флагу знака дается значение 1.

Знаковые целые важны для очень многих алгоритмов,

но они имеют только половину абсолютной величины

соответствующих беззнаковых целых. Например,

запишем в двоичном представлении число типа

short 32767: 01111111 11111111

Поскольку это знаковый тип, при задании старшему

биту значения 1 число будет интерпретировано как -1

(если использовать метод двоичного дополнения). Но

если вы объявляете его тип как ushort, то при задании

старшему биту значения 1 число будет

интерпретировано как 65535. Пожалуй, наиболее часто

используемый целочисленным типом является int.

Переменные типа int часто применяют для управления

циклами, для индексации массивов и в различных

математических вычислениях. При работе с

целочисленными значениями, большими, чем те,

которые могут быть представлены типом int, в C#

используют типы uint, long, ulong, а при работе с

беззнаковым целым - тип uint.

Для больших значений со знаком применяют тип long,

для еще больших положительных чисел

(беззнаковых чисел) - тип ulong.

byte и sbyte - наименьшие целочисленные типы.

Значение типа byte может находиться в диапазоне

от 0 до 255. Переменные типа byte особенно полезны

при использовании необработанных двоичных данных,

таких как поток байтов данных, сгенерированный

каким-либо устройством. Для небольших знаковых

целых применяется тип sbyte.

 

 

9.Числа с плавающей точкой в C#. Ограничения по точности.

. Типы данных с плавающей точкой могут

представлять числа, имеющие дробные части.

В C# существует два типа данных с плавающей

точкой, float и double, представляющие числа с

одинарной и двойной точностью соответственно.

Для представления данных типа float выделяются

32 бита, что позволяет присваивать переменные

значения чисел, находящихся в диапазоне от

1,5Е-45 до 3,4Е+38. Для представления данных

типа double выделяются 64 бита, что расширяет

диапазон используемых чисел до величин из

диапазона от 5Е-324 до 1,7Е+308. Чаще всего

применяется тип double. Одна из причин этого

в том, что многие математические функции в

библиотеке классов C#(которой является библиотека

.NET Framework) используют значения, имеющие

тип double. Например, метод Sqrt (), определенный

в стандартном классе System.Matr., возвращает

значение типа double, являющейся квадратным

корнем его аргумента, также имеющего тип double.

Метод Sqrt.() является членом класса Math. Обратите

внимание на способ вызова метода Sqrt. () -

имя метода отделено точкой от имени класса, членом

которого он является. Не все стандартные методы

нужно вызывать, указав вначале имя класса, в котором

определен данный метод, но некоторые методы

требуют именно такого вызова

 

10.Булевские переменные в C#. Возможные значения. Операции над булевскими переменными. Использование логических выражений.

. Для Булева типа данных, bool, в C# определены

два значения true и false (истина и ложь).

Следовательно, переменная типа bool или

логическое выражение будут иметь одно из этих

двух значений. Более того, не существует способа

преобразования значений типа bool в целочисленные

значения. Например, значение 1 не преобразуется в

значение true, а значение 0 - в значение false.

Особенности использования булевой переменной.

Во-первых, при выводе значения типа bool с помощью

метода WrlteLine () на экран выводится слово true

или false. Во-вторых, используя переменную типа bool

можно управлять оператором if. Если условием

выполнения оператора if является истинность

переменной то нет необходимости записывать

оператора if так: if (b - true) достаточно более короткое

выражение if (b). В-третьих, результатом выполнения

оператора сравнения такого как <, является значение

типа bool. Вот почему выражение 10>9 выводи на

экран значение true. Далее, дополнительная пара скобок,

в которые заключено выражение 10>9, является

необходимой, поскольку оператор + имеет больший

приоритет, чем оператор >.

 

11.Строковые и символьные переменные в C#. Возможные значения и операции со строковыми и символьными переменными.

Строковые переменные.

Объекты класса String объявляются как все прочие

объекты простых типов - с явной или отложенной

инициализацией, с явным или неявным вызовом

конструктора класса. Чаще всего, при объявлении

строковой переменной конструктор явно

не вызывается, а инициализация задается

строковой константой. Но у класса String

достаточно много конструкторов. Они позволяют

сконструировать строку из:

- символа, повторенного заданное число раз;

- массива символов char [ ];

- части массива символов.

Операции над строками:

- присваивание (=);

- две операции проверки эквивалентности (==) и (!=);

- конкатенация или сцепление строк (+);

- взятие индекса ([ ]).

Символьные переменные.

Значением символьной переменной является один

символ из фиксированного набора. Такой набор

обычно включает буквы, цифры, знаки препинания,

знаки математических операций и различные

специальные символы (процент, амперсенд,

звездочка, косая черта и др.). Подчеркнем, что,

в отличие от строковой переменной, символьная

всегда содержит ровно один символ.

(Строковая содержит строку из нескольких символов.)

Конечно, в памяти компьютера никаких символов

не содержится. Символы представляются их

целочисленными кодами в некоторой фиксированной

кодировке. Кодировка определяется тремя параметрами:

- диапазоном значений кодов

- множеством изображаемых символов

- отображением множества кодов на множество символов.

 

12.Оператор присваивания. Явное и неявное преобразование типов данных при присваивании в C#.

Оператор присваивания указывается как

одинарный знак равенства (-). В C# он работает

практически также, как в любом другом языке

программирования. Оператор присваивания имеет

следующий синтаксис:

var - expression;

Тип переменной должен быть совместим

с типом выражения.

Оператор присваивания имеет одно интересное

свойство: позволяет создавать «цепочку присваиваний».

Пример:

int x, y, z;

x - y - z - 100;

(переменным x, y, z присваивается значение 100)

Такая последовательность переменных и оператор

допускается, поскольку оператор = присваивает

переменной, находящийся слева него, значение

выражения, находящегося справа. Следовательно,

выражение z =100 будет имеет значение 100, которое

присваивается переменной y, а затем - переменной x.

Используя «цепочку присваиваний», можно одним

значением легко инициализировать группу переменных.

В C# преобразования делятся на неявные и явные.

К неявным относятся те преобразования, результат

выполнения которых всегда успешен и не приводит к

потере точности данных. Неявные преобразования

выполняются автоматически. Для арифметических

данных это означает, что в неявных преобразованиях

диапазон типа назначения содержит в себе диапазон

исходного типа. Например, преобразование из типа

byte в тип int относится к неявным, поскольку

диапазон типа byte является подмножеством

диапазона int. Это преобразование всегда успешно и

не может приводить к потере точности. Заметьте,

преобразования из целочисленных типов к типам с

плавающей точкой относятся к неявным. Хотя здесь

и может происходить некоторое искажение значения,

но точность представления значения сохраняется,

например, при преобразовании из long в double порядок

значения остается неизменным. К явным относятся

разрешенные преобразования, успех выполнения

которых не гарантируется или может приводить к потере

точности. Такие потенциально опасные преобразования

должны быть явно заданы программистом.

Преобразование из типа int в тип byte относится к явным,

поскольку оно небезопасно и может приводить к потере

значащих цифр. Заметьте, не для всех типов существуют

явные преобразования.

 

13.Арифметические выражения в C#. Целочисленные выражения и выражения с плавающей точкой. Порядок выполнения операций и их результаты.

 

 

14.Условные алгоритмы. Условный оператор if в C#. Примеры использования. Условный оператор switch в C#. Примеры использования.

Условный переход можно реализовать в

программе с помощью ключевых слов языка:

if, else или switch. Такой переход возможен только при

условии, если он является истинным.


Дата добавления: 2015-11-16; просмотров: 39 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Объектно-ориентированное программирование| if...else оператор

mybiblioteka.su - 2015-2024 год. (0.059 сек.)