Похожие презентации:
ООП 1
1.
ПОНЯТИЕ ОБЪЕКТНООРИЕНТИРОВАННОГОПРОГРАММИРОВАНИЯ (ООП)
Классы и объекты
2.
Понятие объектно-ориентированногопрограммирования (ООП). Классы и
объекты
ООП позволяет объединить данные и методы,
относящиеся к одной сущности, и работать с
ними, как с одним целым.
3.
КЛАССЫ И ОБЪЕКТЫ. В ЧЕМРАЗНИЦА?
ООП привносит нам два ключевых
понятия: Класс и Объект.
Класс – это абстрактный тип данных.
С помощью класса описывается некоторая
сущность (ее характеристики и возможные
действия).
Например, класс может описывать студента,
автомобиль и т.д. Описав класс, мы можем
создать его экземпляр – объект.
Объект – это уже конкретный представитель
класса.
4.
ПРИМЕРДопустим, нам в программе необходимо
работать со странами.
Страна – это абстрактное понятие.
У нее есть такие характеристики, как
название, население, площадь, флаг и другое.
Для описания такой страны будет
использоваться класс с соответствующими
полями данных.
Такие страны, как Россия и Бельгия будут уже
объектами (конкретными представителями
типа страна).
5.
ОСНОВНЫЕ ПРИНЦИПЫ ООПООП основывается на нескольких базовых
принципах, пока коротко рассмотрим их.
6.
Инкапсуляция – позволяет скрыватьвнутреннюю реализацию. В классе могут быть
реализованы внутренние вспомогательные
методы, поля, к которым доступ для
пользователя необходимо запретить, тут и
используется инкапсуляция.
7.
Наследование – позволяет создавать новыйкласс на базе другого.
Класс, на базе которого создается новый класс,
называется базовым, а базирующийся новый
класс – наследником.
Например, есть базовый класс животное. В
нем описаны общие характеристики для всех
животных (класс животного, вес).
На базе этого класса можно создать классы
наследники Собака, Слон со своими
специфическими свойствами.
Все свойства и методы базового класса при
наследовании переходят в класс наследник.
8.
Полиморфизм – это способность объектов содним интерфейсом иметь различную
реализацию.
Например, есть два класса, Круг и Квадрат. У
обоих классов есть метод GetSquare(), который
считает и возвращает площадь.
Но площадь круга и квадрата вычисляется поразному, соответственно, реализация одного и
того же метода различная.
9.
Абстракция – позволяет выделять изнекоторой сущности только необходимые
характеристики и методы, которые в полной
мере (для поставленной задачи) описывают
объект.
Например, создавая класс для описания
студента, мы выделяем только необходимые
его характеристики, такие как ФИО, номер
зачетной книжки, группа.
Здесь нет смысла добавлять поле вес или имя
его кота/собаки и т.д.
10.
КЛАССЫ В СИ-ШАРП.ОБЪЯВЛЕНИЕ КЛАССОВ И
СОЗДАНИЕ ОБЪЕКТОВ
11.
Класс – это абстрактный тип данных.Другими словами, класс – это некоторый
шаблон, на основе которого будут создаваться
его экземпляры – объекты.
В Си-шарп классы объявляются с помощью
ключевого слова class. Общая структура
объявления выглядит следующим образом:
12.
МОДИФИКАТОРОВ ДОСТУПА ДЛЯ КЛАССОВ ЕСТЬ ДВА:- PUBLIC – ДОСТУП К КЛАССУ ВОЗМОЖЕН ИЗ ЛЮБОГО МЕСТА ОДНОЙ СБОРКИ
ЛИБО ИЗ ДРУГОЙ СБОРКИ, НА КОТОРУЮ ЕСТЬ ССЫЛКА;
- INTERNAL – ДОСТУП К КЛАССУ ВОЗМОЖЕН ТОЛЬКО ИЗ СБОРКИ, В КОТОРОЙ
ОН ОБЪЯВЛЕН.
13.
Что такое сборка?Сборка (assembly) – это готовый
функциональный модуль в виде exe либо
dll файла (файлов), который содержит
скомпилированный код для .NET. Сборка
предоставляет возможность повторного
использования кода.
14.
При объявлении класса модификатор доступаможно не указывать, при этом будет
применяться режим по умолчанию internal.
Класс следует объявлять внутри пространства
имен namespace, но за пределами другого
класса (возможно также объявление класса
внутри другого - вложенные типы, но это тема
отдельного урока).
15.
ПРИМЕР ОБЪЯВЛЕНИЯКЛАССОВ STUDENT И PUPIL:
16.
ЧЛЕНЫ КЛАССАКлассы в Си-шарп могут содержать следующие
члены:
- поля;
- константы;
- свойства;
- конструкторы;
- методы;
- события;
- операторы;
- индексаторы;
- вложенные типы.
17.
Все члены класса, как и сам класс, имеют свойуровень доступа. Только у членов их может быть
уже пять:
- public – доступ к члену возможен из любого места
одной сборки, либо из другой сборки, на которую
есть ссылка;
- protected – доступ к члену возможен только внутри
класса, либо в классе-наследнике (при
наследовании);
- internal – доступ к члену возможен только из
сборки, в которой он объявлен;
- private – доступ к члену возможен только внутри
класса;
- protected internal - доступ к члену возможен из
одной сборки, либо из класса-наследника другой
сборки.
18.
Не указав модификатор доступа для члена, поумолчанию ему будет присвоен режим private.
При помощи модификаторов доступа в Сишарп реализуется один из базовых
принципов ООП – инкапсуляция.
19.
РАССМОТРИМ ТАКИЕ ЧЛЕНЫ КЛАССА,КАК ПОЛЯ И КОНСТАНТЫ
Поля класса
Поле – это переменная, объявленная внутри
класса. Как правило, поля объявляются с
модификаторами
доступа private либо protected, чтобы запретить
прямой доступ к ним. Для получения доступа к
полям следует использовать свойства или
методы.
20.
ПРИМЕР ОБЪЯВЛЕНИЯ ПОЛЕЙ В КЛАССЕ:21.
СОЗДАНИЕ ОБЪЕКТОВОБЪЯВИВ КЛАСС, МЫ ТЕПЕРЬ МОЖЕМ СОЗДАВАТЬ ОБЪЕКТЫ.
ДЕЛАЕТСЯ ЭТО ПРИ ПОМОЩИ КЛЮЧЕВОГО СЛОВА NEW И ИМЕНИ
КЛАССА:
22.
ДОСТУП К ЧЛЕНАМ ОБЪЕКТАОСУЩЕСТВЛЯЕТСЯ ПРИ ПОМОЩИ ОПЕРАТОРА
ТОЧКА «.» :
23.
ТАКИЕ ПОЛЯ КЛАССА STUDENT,КАК FIRSTNAME, LASTNAME И AGE УКАЗАНЫ С
МОДИФИКАТОРОМ ДОСТУПА PRIVATE, ПОЭТОМУ ДОСТУП К
НИМ БУДЕТ ЗАПРЕЩЕН ВНЕ КЛАССА:
24.
ЗАДАНИЕСоздайте класс Auto, объявите в нем поля с
различными режимами доступа (private,
protected, internal, public). Создайте объект
класса, и попытайтесь записать/получить
данные с различных полей.
25.
class Auto//объявляем класс авто{
// задаём поля с разными степенями допуска
public
string brend;
protected string
model;
internal int
year;
string
color;
}
26.
static void Main(string[] args)// метод{
Auto car1 = new Auto();// объявляем экземпляр класса авто
- "сar1"
Console.WriteLine("Введите брэнд автомобиля");
car1.brend = Console.ReadLine();// задаём поле брэнда;
Console.WriteLine("Введите модель автомобиля");
car1.model = Console.ReadLine();//задаём поле модели задать нелья так как данное поле вне доступа
Console.WriteLine("Введите год выпуска автомобиля");
car1.year = Convert.ToInt32(Console.ReadLine());//задаём
поле год выпуска
Console.WriteLine("Введите цвет автомобиля");
car1.color = Console.ReadLine();//задаём поле цвета - задать
нельзя так как данное поле вне доступа
Console.WriteLine("Наш автомобиль: " + car1.brend + " " +
car1.year);
27.
ЗАДАНИЯ!!!1.Реализовать данную программу в VS.
2. Изучить работу классов в программе,
предложенной преподавателем.(ООП1.txt)
28.
ЗАДАЧИ1.
2.
3.
Создайте класс Покупатель со следующими
полями: фамилия, имя, отчество, адрес, номер
кредитной карточки, номер банковского счета.
Создайте объект класса, заполните его поля данными
(заполняет пользователь) и вывести их. Используйте
разные режимы доступа.
Создайте класс Абонент со следующими
полями: идентификационный номер, фамилия, имя,
отчество, адрес, номер кредитной карточки, время
междугородных и городских переговоров. Создайте
объект класса, с помощью пользователя заполните
его поля данными и сохранить их в ФАЙЛ.
Используйте разные режимы доступа.
Необходимо создать класс — Зоомагазин. В классе
должны быть следующие поля: животное, пол, имя,
цена, количество. Ввод информации осуществляется
пользователем, данные сохраняются в файл.