Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ по ПЯВУ.docx
Скачиваний:
44
Добавлен:
07.07.2019
Размер:
72.69 Кб
Скачать

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 до

92233720368554775807

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 . ( ) -

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

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

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

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

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