Разделы презентаций


Введение в классы и объекты. Передача параметров в методы

Содержание

C#. Классы и объектыОписание класса: [ Модификатор доступа ] class ИмяКласса [ : System.Object] { // члены класса – поля и методы

Слайды и текст этой презентации

Слайд 1Программирование
Тема 4.2 C#.Введение в классы и объекты. Передача параметров в

методы

ПрограммированиеТема 4.2 C#.Введение в классы и объекты. Передача параметров в методы

Слайд 2 C#. Классы и объекты
Описание класса:
[

Модификатор доступа ] class ИмяКласса [ : System.Object]

{ // члены класса – поля и методы
Модификатор доступа Тип имяПоля [ = значение ];
Модификатор доступа Тип имяМетода (Параметры) {
// тело метода }
}
Модификаторы доступа и доступ для членов класса:
public – общий (неограниченный) доступ;
protected – доступ ограничен в пределах данного класса и классов, производных от данного;
internal - доступ ограничен сборкой, в которой находится данный класс;
protected internal - доступ ограничен в пределах данного класса и классов, производных от данного, или - доступ ограничен сборкой, в которой находится данный класс;
private - доступ ограничен в пределах данного класса;

Доступом по умолчанию для членов класса является private

C#. Классы и объектыОписание класса:   [ Модификатор доступа ] class ИмяКласса [ :

Слайд 3 C#. Классы и объекты
Класс – это конструкция языка программирования,

которая объединяет в себе переменные и функции (методы), которая может

определять новый тип данных, который можно использовать для создания объектов этого типа.
В C# как и в Java объявление класса совмещено с его определением, то есть методы класса нужно реализовывать (писать код тела) сразу же при их описании. Поля класса могут инициализироваться при объявлении.
Модификаторы доступа - это ключевые слова, которые определяют доступность класса или его членов.
В языке C# предусмотрены следующие модификаторы доступа: public, protected, internal, protected internal, private.
Для членов класса (полей и методов) разрешено использование всех указанных выше модификаторов.
Модификатор доступа должен появляться перед каждым отдельным полем или методом (иначе данный элемент будет иметь уровень доступа private).
Поля и методы класса, помеченные как public,  доступны через объект по имени из классов текущей сборки и из классов других сборок (если класс имеет уровень доступа public).
Поля и методы класса, помеченные как protected, доступны по имени только из методов своего класса и классов потомков.
Поля и методы класса, помеченные как protected internal, доступны по имени только из методов своего класса и классов потомков, а также доступны через объект по имени для любого класса текущей сборки.
Private-поля и private методы доступны по имени только из методов своего класса.
Поля и методы класса, помеченные как internal, доступны по имени только из методов своего класса и классов потомков текущей сборки, а также доступны через объект по имени для любого класса текущей сборки.
Доступ для классов верхнего уровня (классов, не вложенных в другие классы) ограничивается модификаторами internal и public (мо умолчанию – internal).
C#. Классы и объектыКласс – это конструкция языка программирования, которая объединяет в себе переменные и функции

Слайд 4 C#. Классы и объекты

Создание объектов:
ИмяКласса

имяОбъекта; // объявление ссылки на объект
имяОбъекта

= new ИмяКласса([ параметры конструктора]);
Доступ к полям и методам объекта:
имяОбъекта.имяПоля = значение;
ИмяОбъекта.имяМетода(параметры);

Варианты конструкторов:
Конструкторы с параметрами;
Конструкторы без параметров (конструкторы по умолчанию).


Специальная ссылка this
C#. Классы и объектыСоздание объектов:    ИмяКласса имяОбъекта; // объявление ссылки на объект

Слайд 5 C#. Классы и объекты
Объект в С# как и в

Java – это экземпляр класса. Класс как и в Java

так и в С# является ссылочным типом данных, поэтому механизм создания объектов одинаков:
Создается ссылочная переменная в стеке для хранения адреса будущего объекта;
В динамической памяти (куче) выделяется пространство для размещения объекта со всеми его полями;
Поля объекта инициализируются значениями по умолчанию;
Выполняется явная инициализация полей объекта, если она была задана программистом;
Выполняется конструктор;
Ссылка на созданный объект (его адрес) записывается в соответствующую ссылочную переменную.
В С# доступ к элементам объекта вне класса, которому принадлежит объект, такой же как и в Java - используется операция «точка» после переменной-ссылки на объект, если конечно этот доступ разрешен модификаторами доступа. Если элементы объекта имеют модификатор доступа private, то доступ к ним осуществляется через public-методы.
Идеология конструкторов в С# мало чем отличается от конструкторов в С++ и Java. Конструктор – это метод, имя которого совпадает с именем класса и который вызывается автоматически при создании объекта. Типы конструкторов в С# те же что и в Java: конструкторы с параметрами и конструкторы без параметров (конструкторы по умолчанию).
Ссылка this – это скрытый параметр метода, который хранит ссылку на текущий объект, который вызывает метод.
Как и в Java в С# уничтожение неиспользуемых объектов осуществляется автоматически «сборщиком мусора», специальным механизмом CLR. В C# можно создать метод вида ~имя_класса(), который полностью аналогичен методу finalize() в Java, то есть является завершителем, который вызывается механизмом CLR перед уничтожением объекта. В С# метод вида ~имя_класса() также называют деструктором.

C#. Классы и объектыОбъект в С# как и в Java – это экземпляр класса. Класс как

Слайд 6 C#. Классы и объекты
Пример 1:

C#. Классы и объектыПример 1:

Слайд 7 C#. Классы и объекты
Пример 1:

C#. Классы и объектыПример 1:

Слайд 8 C#. Статические поля и методы
Пример


C#. Статические поля и методыПример

Слайд 9 C#. Статические поля и методы
Назначение статических полей класса и

статических методов одинаковое и в С++ и в Java и

в C#.
Статические поля класса - это поля, значения которых для каждого экземпляра класса (объекта) одинаковы (создаются статические поля отдельно от создания объекта), а статические методы предназначены для работы со статическими полями. Статический метод ссылку this не получает и поэтому обращаться к нестатическим членам класса не может. Для доступа к обычному члену класса необходимо создать объект класса, а для доступа к статическому элементу можно воспользоваться именем класса.
Так как в C# и в Java отсутствуют глобальные переменные и константы, то все объявления должны находиться внутри классов. В результате часто образуются классы, состоящие исключительно из статических членов. Необходимость в создании экземпляров у таких классов полностью отсутствует, так как статические поля и методы можно вызвать через имя класса. Чтобы запретить создание экземпляров данного класса создают закрытый конструктор (см. пример на слайде). 



C#. Статические поля и методыНазначение статических полей класса и статических методов одинаковое и в С++ и

Слайд 10 С#. Передача параметров в методы
Описание метода:
Модификатор доступа

Тип_возврата имяМетода (Формальные параметры)
{

/* тело метода */ }
Вызов метода:
имяОбъекта . имяМетода (Фактические параметры)
Способы передачи параметров:
по значению;
по ссылке (по адресу).

Разновидности формальных и фактических параметров:
входные параметры (параметры – значения);
выходные параметры (объявляются с ключевым словом out);
ссылочные параметры (объявляются с ключевым словом ref).

С#. Передача параметров в методыОписание метода: Модификатор доступа Тип_возврата имяМетода (Формальные параметры)

Слайд 11 С#. Передача параметров в методы
В С# существует два способа

передачи параметров: по значению и по ссылке.
При передаче параметров по

значению - значения фактических параметров копируются в соответствующие формальные параметры. Изменение формального параметра не влияет на значение фактического параметра. При передаче ссылок на объекты копируется ссылка (адрес объекта). После такого копирования, и фактический параметр, и формальный параметр, ссылаются на один и тот же объект.
При передаче параметров по ссылке - адреса фактических параметров копируются в соответствующие формальные параметры и по этим адресам есть доступ к значениям фактических параметров и их можно изменить.
В С# передача параметров по ссылке реализуется с помощью ссылочных параметров (ref – параметров) и выходных параметров (out – параметров).
Разница между ref и out в том, что переменную, переданную через out вы обязаны проинициализировать в методе, куда она передается.
С#. Передача параметров в методыВ С# существует два способа передачи параметров: по значению и по ссылке.При

Слайд 12 C#. Передача параметров в методы
Пример 2. Параметры-значения
Вариант 1












C#. Передача параметров в методыПример 2. Параметры-значенияВариант 1

Слайд 13 C#. Передача параметров в методы
Пример 2. Параметры -

ссылки
Вариант 2












C#. Передача параметров в методыПример 2. Параметры - ссылкиВариант 2

Слайд 14 C#. Передача параметров в методы
Пример 3. Массив в качестве

параметра и возвращаемого значения









C#. Передача параметров в методыПример 3. Массив в качестве параметра и возвращаемого значения

Слайд 15 C#. Передача параметров в методы
Пример 3. Массив в качестве

параметра и возвращаемого значения









C#. Передача параметров в методыПример 3. Массив в качестве параметра и возвращаемого значения

Слайд 16 C#. Передача параметров в методы
Пример 4. Массив в качестве

параметра








C#. Передача параметров в методыПример 4. Массив в качестве параметра

Слайд 17 C#. Передача параметров в методы
Пример 4. Массив в качестве

параметра








C#. Передача параметров в методыПример 4. Массив в качестве параметра

Слайд 18 С#. Передача параметров в методы
Пример 5. Возврат двух

значений из метода. Выходные параметры












С#. Передача параметров в методыПример 5. Возврат двух значений из метода. Выходные параметры

Слайд 19 C#. Передача параметров в методы
Пример 5. Возврат двух значений

из метода. Выходные параметры












C#. Передача параметров в методыПример 5. Возврат двух значений из метода. Выходные параметры

Слайд 20 C#. Массивы объектов. Интерфейс IComparable
Пример 6. Сортировка массива объектов












C#. Массивы объектов. Интерфейс IComparableПример 6. Сортировка массива объектов

Слайд 21 C#. Массивы объектов. Интерфейс IComparable
Пример 6. Сортировка массива объектов





C#. Массивы объектов. Интерфейс IComparableПример 6. Сортировка массива объектов

Слайд 22 C#. Массивы объектов. Интерфейс IComparer
Пример 7. Сортировка массива

объектов





C#. Массивы объектов. Интерфейс IComparerПример 7. Сортировка массива объектов

Слайд 23 C#. Массивы объектов. Интерфейс IComparer
Пример 7. Сортировка массива объектов





C#. Массивы объектов. Интерфейс IComparerПример 7. Сортировка массива объектов

Слайд 24 C#. Массивы объектов. Интерфейс IComparer
Пример 7. Сортировка массива объектов





C#. Массивы объектов. Интерфейс IComparerПример 7. Сортировка массива объектов

Слайд 25 C#. Структуры
Описание структуры:
[ Модификатор доступа

] struct ИмяСтруктуры [ : интерфейсы]

{ // члены структуры – поля и методы
Модификатор доступа Тип имяПоля ;
Модификатор доступа Тип имяМетода (Параметры) {
// тело метода }
}
Модификаторы доступа для членов структуры:
public , internal, private ;

Доступом по умолчанию для членов структуры является private
Создание экземпляра структуры:
ИмяСтруктуры имяОбъекта;
ИмяСтруктуры имяОбъекта = new ИмяСтруктуры([ параметры конструктора]);
Доступ к полям и методам объекта:
имяОбъекта.имяПоля = значение;
ИмяОбъекта.имяМетода(параметры);


C#. СтруктурыОписание структуры:   [ Модификатор доступа ] struct ИмяСтруктуры [ : интерфейсы]

Слайд 26 C#. Структуры
Структура – это тип данных, аналогичный классу, но

имеющий ряд важных отличий от него:
Структура является значимым, а не

ссылочным типом данных, то есть экземпляр структуры располагается в стеке, а не в куче;
Структура не может участвовать в иерархиях наследования, она может только реализовывать интерфейсы;
В структуре запрещено определять конструктор по умолчанию, он определен неявно и присваивает всем ее элементам значения по умолчанию (нули соответствующего типа);
При описании структуры нельзя задавать значения полей по умолчанию (кроме статических полей);
Переопределяться (override) могут только методы, унаследованные от базового класса object;
В структуре запрещено определять деструкторы.
Замечание. Строго говоря любой значимый тип С# является структурным.
Отличия от классов обуславливают область применения структур: типы данных, имеющие небольшое количество полей, с которыми удобнее работать как со значениями, а не как со ссылками. Накладные расходы на динамическое выделение памяти для небольших объектов могут значительно снизить быстродействие программы, поэтому их эффективнее описывать как структуры, а не как классы.
Замечание. С другой стороны, передача экземпляра структуры в метод по значению требует и дополнительного времени, и дополнительной памяти.
При выводе экземпляра структуры на консоль выполняется упаковка, то есть неявное преобразование в ссылочный тип. Упаковка применяется и в других случаях, когда структурный тип используется там, где ожидается ссылочный. При обратном преобразовании – из ссылочного типа в структурный – выполняется распаковка.
При присваивании экземпляров структур создается копия значений полей. То же самое происходит и при передачи структур в качестве параметра по значению. Для экономии ресурсов ничто не мешает передавать структуры в методы по ссылке с помощью ключевых слов ref или out.
Особенно значительный выигрыш в эффективности можно получить, используя массивы объектов структур вместо массивов объектов классов. Например, для массива из 100 объектов класса создается 101 объект, а для массива объектов структур – один объект.
C#. СтруктурыСтруктура – это тип данных, аналогичный классу, но имеющий ряд важных отличий от него:Структура является

Слайд 27 C#. Структуры
Пример 8.





C#. СтруктурыПример 8.

Слайд 28 C#. Структуры
Пример 8.





C#. СтруктурыПример 8.

Слайд 29 Контрольные вопросы
Понятие класса. Синтаксис описания класса в С#.

Модификаторы доступа: характеристика и примеры использования.
Понятие объекта. Создание и

уничтожение объектов в С#. Доступ к полям и методам объекта в С#. Конструкторы: назначение и типы. Примеры.
С#. Передача параметров простых и ссылочных типов в методы. Примеры.
С#. Статические поля и методы: назначение и примеры использования.
Массивы объектов в С#. Сортировка массива объектов. Примеры.
С#. Структуры: назначение, отличие от классов, примеры использования.

Контрольные вопросыПонятие класса. Синтаксис описания класса в С#. Модификаторы доступа: характеристика и примеры использования. Понятие

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика