Презентация на тему Введение в объектно-ориентированное программирование. Основные элементы языка С#.Понятие класса.

Презентация на тему Введение в объектно-ориентированное программирование. Основные элементы языка С#.Понятие класса., предмет презентации: Разное. Этот материал содержит 78 слайдов. Красочные слайды и илюстрации помогут Вам заинтересовать свою аудиторию. Для просмотра воспользуйтесь проигрывателем, если материал оказался полезным для Вас - поделитесь им с друзьями с помощью социальных кнопок и добавьте наш сайт презентаций ThePresentation.ru в закладки!

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

Слайд 1
Текст слайда:

Введение в объектно-ориентированное программирование. Основные элементы языка С#. Понятие класса.

Лекция №1


Слайд 2
Текст слайда:

Основной учебник:

Павловская Т.А.
С#. Программирование на языке высокого уровня. Учебник для вузов. – СПб.: Питер, 2007.


Слайд 3
Текст слайда:

1 Основы объектно-ориентированного программирования (ООП)

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

Объект — это некоторая структура, соответствующая объекту реального мира, его поведению.

Объект в программе – это совокупность данных, характеризующих его состояние, и функций их обработки, моделирующих его поведение.

Для представления объектов используется понятие класс.


Слайд 4
Текст слайда:

Класс — это специальный тип данных, включающий описание данных и описание процедур и функций (методов), которые могут быть выполнены над представителем класса — объектом.

Объект – это конкретный экземпляр класса.

Основные принципы ООП:
Наследование
Инкапсуляция
Полиморфизм


Слайд 5
Текст слайда:

Наследование.
Концепция объектно-ориентированного программирования предполагает возможность определять новые классы посредством добавления полей, свойств и методов к уже существующим классам. Такой механизм получения новых классов называется порождением. При этом новый, порожденный класс (потомок) наследует свойства и методы своего базового, родительского класса.


Слайд 6
Текст слайда:

Инкапсуляция.

Под инкапсуляцией понимается скрытие полей объекта с целью обеспечения доступа к ним только посредством методов класса.

Объект используется через интерфейс – совокупность правил доступа.

Полиморфизм.
Полиморфизм — это возможность использовать одинаковые имена для методов, входящих в различные классы.


Слайд 7
Текст слайда:

Язык С# является одним из компонентов платформы .NET

Платформа .NET включает в себя
языки программирования VB.NET, J#.NET, C++.NET и др.
среду разработки приложений Visual Studio.NET для нескольких языков программирования
компиляторы, переводящие программу с соответствующего языка в промежуточный язык Microsoft Intermediate Language
общеязыковая среда выполнения Common Language Runtime (CLR) или виртуальная машина CLI
Библиотека классов


Слайд 8
Текст слайда:

Все классы библиотеки .NET, а также создаваемые программистом в среде .NET классы имеют одного предка – класс object.

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

Любая создаваемая в .NET программа использует пространство имен System, в котором определены классы, обеспечивающие базовую функциональность.


Слайд 9
Текст слайда:

2 Основные элементы языка C#

Идентификатор – имя любого объекта программы (переменной, константы, процедуры и др.).

Идентификатор может включать буквы, цифры и символ подчеркивания.

Идентификатор не может начинаться с цифры.

Прописные и строчные буквы в идентификаторах различаются.

Т.е. напр., Vasja1, VASJA1 и VaSjA1 – это разные идентификаторы

Длина идентификатора не ограничена.


Слайд 10
Текст слайда:

Для использования ключевого слова в качестве идентификатора его нужно предварить символом @.
Например, @if

В С# для имен используют обычно две нотации: Паскаля и Camel.

Нотация – соглашение о правилах создания имен.

В нотации Паскаля каждое слово в имени начинается с прописной буквы: MaxDlina

В нотации Camel каждое слово в имени кроме первого начинается с прописной буквы: maxDlina, myBestFriend


Слайд 11
Текст слайда:

Типы данных

Под типом данных понимается множество допустимых значений этих данных, а также совокупность операций над ними.


Слайд 12
Текст слайда:

Встроенные типы С# однозначно соответствуют стандартным классам библиотеки .NET , определенным в пространстве имен System.


Слайд 13

Слайд 14
Текст слайда:

Имя встроенного типа можно заменить именем соответствующего класса библиотеки.

Т.е. у встроенных типов данных есть методы и поля, к которым можно обращаться.
Например:

int.MaxValue (System.Int32.MaxValue) – максимальное значение типа int.


Слайд 15
Текст слайда:

Константы (литералы)


Слайд 16

Слайд 17
Текст слайда:

Переменные

Все переменные, используемые в программе должны быть описаны явным способом.
При описании задаются ее имя и тип:
тип имя1,[имя2, имя3, …];

Например,
int dlina; float b;

При описании можно инициализировать переменные:
int x = 1, b;
float y = 0.1f, n = y * 2 + 2.1;


Слайд 18
Текст слайда:

При описании инициализировать переменные не обязательно, но обязательно их инициализировать перед вычислениями.

Область действия переменной начинается в точке ее описания и распространяется до конца блока, внутри которого она описана.

Блок – это код, заключенный в фигурные скобки.

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


Слайд 19
Текст слайда:

Операции

Ниже приводятся операции в порядке убывания приоритета.


Слайд 20

Слайд 21
Текст слайда:

Если операнды, входящие в выражение, одного типа и операция для этого типа определена, то результат выражения будет иметь тот же тип.

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


Слайд 22
Текст слайда:

double

float

decimal

long

ulong

int

uint

short

ushort

sbyte

byte

char


Слайд 23
Текст слайда:

Преобразование выполняется непосредственно из исходного типа в результирующий.

Если неявного преобразования из одного типа в другой не существует, можно задать явное преобразование с помощью операции (тип)x. За результатом должен следить программист.

Например:
long y = 500;
int x = (int) y;
byte z = (byte) x;
В последнем случае данные будут потеряны.


Слайд 24
Текст слайда:

3 Классы: основные понятия

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

Класс описывается следующим образом:

[ атрибуты] [ спецификаторы] class имя_класса [ : предки]
{
тело класса
}


Слайд 25
Текст слайда:

Спецификаторы определяют свойства класса и доступность для других элементов программы.

public доступ не ограничен

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

internal доступ только из данной программы

private для вложенных классов доступ только из элементов класса, внутри которого описан данный класс.

Для не вложенных классов используются только спецификаторы public и internal.

По умолчанию принят спецификатор internal.


Слайд 26
Текст слайда:

Элементы класса :
Константы хранят неизменяемые значения, связанные с классом
Поля содержат данные класса

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

Свойства определяют характеристики класса в совокупности со способами их задания и получения ( методами записи и чтения)

Конструкторы выполняют действия по инициализации экземпляров или класса в целом


Слайд 27
Текст слайда:

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

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

Операции задают действия с объектами с помощью знаков операций

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

Типы – внутренние по отношению к классу типы данных


Слайд 28
Текст слайда:

Объекты класса создаются явным или неявным образом (программистом или системой). Для явного создания экземпляра используется операция new.

Например, пусть имеется следующее описание класса:
class Primer1{}
Тогда для создания объектов p1 и p2 в программе следует набрать
Primer1 p1 = new Primer1();
Primer1 p2 = new Primer1();

Формат операции: new тип ( [ аргументы ])


Слайд 29
Текст слайда:

Программа на С# состоит из взаимодействующих между собой классов.
При создании консольного приложения средой автоматически создается следующая заготовка:

using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
}
}


Слайд 30
Текст слайда:

Директива using System; разрешает использовать имена классов из пространства имен System без указания имени пространства.

Ключевое слово namespace создает для проекта собственное пространство имен. Таким образом, программным объектам можно давать имена, не волнуясь о том, что они могут совпасть с именами в других пространствах имен.

Пока программа содержит только один класс Program, содержащий только один элемент - метод Main.

В каждом приложении обязательно должен присутствовать метод Main. Именно с него начинается выполнение программы.


Слайд 31
Текст слайда:

Простейший ввод-вывод

Для работы с консолью в С# применяется класс Console, определенный в пространстве имен System.

В классе Console существует несколько вариантов методов с именами Write и WriteLine, предназначенных для вывода значений различных типов.

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

Методы вывода перегружены для всех встроенных типов данных.

Для доступа к методу используется операция доступа (точка):
Console.WriteLine(параметр);


Слайд 32
Текст слайда:

Например:
Console.WriteLine("Здравствуйте, я ваша тетя!");
или
Console.Write ("Здравствуйте, я ваша тетя!");

Если метод WriteLine (Write) вызван с одним параметром, он может быть любого встроенного типа. Если требуется вывести в одной строке несколько величин различного типа, перед передачей для вывода их нужно «склеить» в одну строку с помощью операции +.

Перед объединением строки с числом нужно преобразовать число в строку с помощью метода ToString().


Слайд 33
Текст слайда:

Например:
int x = 3;
Console.WriteLine("x="+x.ToString());

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

Первым параметром передается строковая константа, содержащая обычные символы, которые выводятся на экран, а также управляющие последовательности и параметры в фигурных скобках.

Эти параметры представляют собой номера переменных в списке вывода и при выводе заменяются на значения соответствующих переменных (Нумерация с нуля).


Слайд 34
Текст слайда:

Например:
int x = 3;
float y=0.6f;
Console.WriteLine("x={0}\ty={1}",x,y );
Console.WriteLine("x="+x.ToString()+" y="+y.ToString());

Для каждого параметра можно задать ширину поля вывода.
Например:
Console.WriteLine("x={0,5}\ty={1,4}",x,y );


Слайд 35
Текст слайда:

В классе Console для ввода строки можно использовать метод ReadLine().

Например,
Console.Write("Как вас зовут?\n");
string name = Console.ReadLine();

Console.Write("Введите символ\n");
char name = (char) Console.Read();

Для ввода символа можно использовать метод Read(), который возвращает код символа типа int или -1, если символ не был введен.
Поэтому требуется явное преобразование в тип char.


Слайд 36
Текст слайда:

Ввод чисел с клавиатуры можно осуществить в два этапа:
ввести число в виде строки символов
преобразовать строку в переменную соответствующего типа.

Преобразование выполняется с помощью класса Convert из пространства имен System, используя соответствующие методы класса ToInt32(s), ToDouble(s), ToByte(s) и т.д.
Здесь s – параметр типа string.

Например:
string s;
s = Console.ReadLine();
byte h = Convert.ToByte(s);


Слайд 37
Текст слайда:

Преобразование можно также выполнить с помощью метода Parse, который есть в каждом стандартном арифметическом классе.

Например:
byte w = byte.Parse(s);

Функции класса Math

В классе Math пространства имен System реализованы всевозможные математические функции.


Слайд 38
Текст слайда:

Abs(x) перегружен

Arccos x Acos(x)

Arcsin x Asin(x)

Arсtan x Atan(x)

округление до большего целого Ceiling(x)

Натуральный логарифм Log(x)

Десятичный логарифм Log10(x)

число е Е

число π PI


Слайд 39
Текст слайда:

Округление Round(x) перегружен


Exp(x)

tg x Tan(x)

Pow(x,y)

Sqrt(x)

Остаток от деления IEEERemainder(x,y)

Округление до меньшего целого Floor(x)

Знак числа Sign(x) тип результата int, аргументы
перегружены


Слайд 40
Текст слайда:

Пример. Вычислить значение выражения

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1


Слайд 41
Текст слайда:

{
class Program
{
static void Main(string[] args)
{
float x,z;
string s;
Console.WriteLine("Введите x");
s = Console.ReadLine();
x = Convert.ToSingle(s);
Console.WriteLine("Введите z");
s = Console.ReadLine();
z = Convert.ToSingle(s);


Слайд 42
Текст слайда:

double b = x * (Math.Atan(z) - Math.Exp(-(x + 3)));
Console.WriteLine("x="+x.ToString() + " z=" + z.ToString());
Console.WriteLine("z=" + z.ToString());
Console.ReadKey();
}
}
}


Слайд 43
Текст слайда:

Основные элементы классов: данные, методы, конструкторы.

Лекция №2


Слайд 44
Текст слайда:

Данные: поля и константы

Переменные, описанные в классе, называются полями класса.

Синтаксис описания элемента данных:
[ атрибуты ] [ спецификаторы ] [ const ] тип имя [ = начальное_значение];

Спецификаторы полей и констант:
public доступ к элементу не ограничен
protected доступ только из данного и производных классов
internal доступ только из данной сборки
private доступ только из данного класса
static одно поле для всех экземпляров класса


Слайд 45
Текст слайда:

readonly поле доступно только для чтения

По умолчанию все элементы класса считаются закрытыми (private).
Желательно определять переменные класса как закрытые, чтобы только методы того же класса имели доступ к их значениям.

Поля, характеризующие класс в целом, т.е. имеющие одно и то же значение для всех экземпляров класса, следует описывать как статические.

При создании каждого объекта (экземпляра) класса в памяти выделяется отдельная область, в которой хранятся его данные.

Статические поля класса и константы существуют в единственном экземпляре для всех объектов класса.


Слайд 46
Текст слайда:

Обращение к статическому полю класса:
имя класса. имя поля

Обращение к константе класса:
имя класса. имя константы

Обращение к обычному полю ( полю экземпляра) класса:
имя экземпляра. имя поля


Слайд 47
Текст слайда:

Например, пусть в приложении описан класс Primer1:
class Primer1
{
public float x, y = 2.5f; //поля данных с неограниченным доступом
public const int f = 1, z = 5; // константы
public static char h = 'A', h1; //статические поля данных
double b; // закрытое поле данных
}

Обратиться к полям этого класса можно следующим образом:


Слайд 48
Текст слайда:

class Program
{
static void Main(string[] args)
{ Primer1 P1 = new Primer1();
Primer1 P2 = new Primer1();
Console.WriteLine(P1.x); Console.WriteLine(P1.y);
Console.WriteLine(P2.x); Console.WriteLine(P2.y);
Console.WriteLine(Primer1.f); Console.WriteLine(Primer1.z);
Console.WriteLine(Primer1.h); Сonsole.WriteLine(Primer1.h1);
}
}


Слайд 49
Текст слайда:

Оператор Console.WriteLine(P1.b); будет ошибочным, т.к. обращаться к закрытому полю данных из другого класса нельзя. Доступ к такому полю можно получить только посредством метода.

Результат выполнения программы:
0
2,5
0
2,5
1
5
А
пустая строка


Слайд 50
Текст слайда:

Все поля автоматически инициализируются (статические – при инициализации классов, обычные – при создании объектов).
Числовые получают значение 0, символьные и строковые – пустая строка.
После этого полям присваиваются значения, указанные при явной инициализации (если таковая имеется).


Слайд 51
Текст слайда:

Методы

Метод –это оформленный особым образом поименованный фрагмент кода, который реализует вычисления или другие действия, выполняемые классом или объектом.

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

Синтаксис метода:
[ атрибуты ] [ спецификаторы ] тип имя ([параметры])
{
тело метода
}

заголовок метода

последовательность операторов


Слайд 52
Текст слайда:

Спецификаторы метода:
public доступ не ограничен
protected доступ только из данного и производных классов
internal доступ только из данной сборки
private доступ только из данного класса (по умолчанию)
static одно поле для всех экземпляров класса

Для работы со статическими данными класса используются статические методы (static), для работы с данными экземпляра – методы экземпляра (просто методы).

Статические методы можно вызвать, не создавая объект.

Чаще всего применяется спецификатор доступа к методам public.


Слайд 53
Текст слайда:

Тип в заголовке метода определяет тип результата работы метода.

Для передачи значения выражения в качестве результата работы метода используется оператор
return выражение;

Например:
class Primer2
{ string s;
public string vvods()
{
s = Console.ReadLine();
return s;
}


Слайд 54
Текст слайда:

Если метод не возвращает никакого значения, в заголовке указывается тип void, а оператор return отсутствует.

Например:
public void vyvods()
{ Console.WriteLine(s); }

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

Для каждого параметра указывается тип.


Слайд 55
Текст слайда:

Обращение к статическому методу класса:
имя класса. имя метода([аргументы])

Например:
static int maximum(int x, int y)
{
if (x > y) return x;
else return y;
}


Слайд 56
Текст слайда:


Обращение к нестатическому методу класса:
имя объекта. имя метода([аргументы])

Если метод возвращает значение, то он вызывается отдельным оператором, а если не возвращает, то в составе выражения в правой части оператора присваивания.
Например:
Primer2 S1 = new Primer2();
string g = S1.vvods(); S1.vyvods(); Console.ReadKey();

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


Слайд 57
Текст слайда:

При вызове метода с параметрами количество аргументов должно совпадать с количеством параметров в заголовке метода. Кроме того должно существовать неявное преобразование типа аргумента к типу соответствующего параметра.

Например, если метод maximum является методом класса Primer2, то из метода Main можно обратиться к нему след. образом:

int max = Primer2.maximum(5, 8);
или
int max = Primer2.maximum(c1, c2+6);


Слайд 58
Текст слайда:

Eсли метод maximum является методом класса Program, то из метода Main можно обратиться к нему след. образом:
int max = maximum(5, 8);

В С# предусмотрены след. виды параметров:
параметры-значения
параметры-ссылки
выходные параметры
параметры-массивы


Слайд 59
Текст слайда:

При описании параметра-значения в заголовке метода указывается только тип.
Параметр- значение представляет собой локальную переменную, которая получает в качестве своего значения копию значения аргумента.

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

Например, описанный выше метод maximum имеет два параметра-значения.


Слайд 60
Текст слайда:

Если в методе требуется изменить значение передаваемых в качестве параметров величин, используют параметры-ссылки.

При описании параметра-ссылки в заголовке метода перед указанием типа помещают ключевое слово ref

При вызове метода в область параметров копируется не значение аргумента, а его адрес, т.е. метод работает непосредственно с переменной из вызывающей функции и может ее изменить.

При вызове метода в качестве аргумента на месте параметра-ссылки может находиться только ссылка на инициализированную переменную точно того же типа со словом ref перед аргументом.


Слайд 61
Текст слайда:

Например:
class Program
{
static void Udvoenie(ref int x, ref float y)
{ x = 2 * x; y *= 2;
}
static void Main(string[] args)
{
int a = 3; float b = 3.5f;
Udvoenie(ref a, ref b);
Console.WriteLine("a=" + a.ToString() + " b=" + b.ToString());
}
}


Слайд 62
Текст слайда:

Если нет необходимости инициализировать переменную-аргумент до вызова метода, можно использовать выходные параметры.

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

Выходному параметру обязательно должно быть присвоено значение внутри метода, а в вызывающем коде переменную достаточно описать.

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


Слайд 63
Текст слайда:

class Program
{
static void Vvod(out int x, out float y)
{
string s;
Console.WriteLine("Введите целое число");
s = Console.ReadLine(); x = Convert.ToInt32(s);
Console.WriteLine("Введите вещественное число");
s = Console.ReadLine(); y = Convert.ToSingle(s);
}


Слайд 64
Текст слайда:

static void Main(string[] args)
{
int a; float b;
Vvod(out a, out b);
Console.WriteLine("a=" + a.ToString() + " b=" + b.ToString());
Console.ReadKey();
}
}


Слайд 65
Текст слайда:

В любой нестатический метод автоматически передается скрытый параметр this, в котором хранится ссылка на вызвавший этот метод объект.

Этот параметр применяется, например, когда требуется использовать имя поля, совпадающее с именем параметра метода:


Слайд 66
Текст слайда:

class Primer3
{
int x; double y;
public void set_x(int x)
{ this.x = x; }
public void set_y(double y)
{ this.y = y; }
public double sum()
{ return x + y; }
}


Слайд 67
Текст слайда:

class Program
{
static void Main(string[] args)
{
Primer3 P1 = new Primer3(); Primer3 P2 = new Primer3();
int a = 3; float b=4.5f;
P1.set_x(a); P1.set_y(b);
a = 5; b=5.3f;
P2.set_x(a); P2.set_y(b);
Console.WriteLine("сумма1=" + P1.sum().ToString() );
Console.WriteLine("сумма2=" + P2.sum().ToString());
Console.ReadKey();
}
}


Слайд 68
Текст слайда:


P1


P2





P1.x

P1.y

P2.x

P2.y

При выполнении оператора P1.set_x(a); выполнение this.x = x; это фактически x=a и P1.x = x

3

При выполнении оператора P2.set_y(b); выполнение this.y = y; это фактически y=b и P2.y = y

5.3



x


y

set_x


set_y


Слайд 69
Текст слайда:

Конструкторы

Конструктор экземпляра – это метод, предназначенный для инициализации объекта, автоматически вызываемый при создании объекта с помощью операции new.

Имя конструктора должно совпадать с именем класса.

[спецификатор] имя класса([параметры])
{ тело конструктора}

Конструктор не возвращает значение.
Класс может иметь несколько конструкторов для инициализации объектов разными способами.

Обычно используется спецификатор public.


Слайд 70
Текст слайда:

Если конструктор в классе не определен, C# автоматически предоставляет конструктор по умолчанию, который инициализирует все поля нулями. Но если в классе определить хотя бы один конструктор, конструктор по умолчанию не используется.


Для инициализации статических данных класса можно создать статический конструктор.

Статический конструктор вызывается автоматически до вызова конструктора объекта. Он должен быть закрытым.

static имя класса()
{ тело конструктора}


Слайд 71

Слайд 72

Слайд 73

Слайд 74

Слайд 75

Слайд 76

Слайд 77

Слайд 78

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

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

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

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

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


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

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