Похожие презентации:
Классы и методы в C#
1. Классы и методы в C#
2. Классы
Класс – это абстрактный тип данных, т.е. этонекоторый шаблон, на основе которого будут
создаваться его экземпляры – объекты.
В С# классы объявляются с помощью
ключевого слова class:
[модификатор доступа] class [имя_класса]
{
//тело класса
}
3. Модификаторы доступа к классам
- public – доступ к классу возможен из любогоместа одной сборки либо из другой сборки, на
которую есть ссылка;
- internal – доступ к классу возможен только из
сборки, в которой он объявлен.
Если при объявлении класса не указать
модификатор доступа, то по умолчанию будет
применяться режим internal.
Сборка – это готовый функциональный
модуль в виде exe либо dll файла (файлов),
который содержит скомпилированный код для
.NET.
4. Объявление классов
Класс следует объявлять внутри пространстваимен namespace, но за пределами другого класса
Пример:
namespace HelloWorld
{
class Student // класс будет internal
{
//тело класса
}
public class Pupil
{
//тело класса
}
}
5. Члены класса
- поля;- константы;
- свойства;
- конструкторы;
- методы;
- события;
- операторы;
- индексаторы;
- вложенные типы.
Все члены класса также имеют свой уровень
доступа.
6. Модификаторы доступа к членам класса
- public – доступ к члену возможен из любогоместа одной сборки, либо из другой сборки, на
которую есть ссылка;
- protected – доступ к члену возможен только
внутри класса, либо в классе-наследнике;
- internal – доступ к члену возможен только из
сборки, в которой он объявлен;
- private – доступ к члену возможен только внутри
класса;
- protected internal - доступ к члену возможен из
одной сборки, либо из класса-наследника другой
сборки.
7. Модификаторы доступа к членам класса
Не указав модификатор доступа для члена, поумолчанию ему будет присвоен режим private.
При помощи модификаторов доступа в С#
реализуется один из базовых принципов ООП –
инкапсуляция.
Инкапсуляция - это использование
модификаторов доступа с целью сокрытия частей
программного кода от конечного пользователя.
8. Модификаторы доступа к членам класса
Классы и члены класса можно сделатьстатическими с помощью служебного слова static.
Пример:
public static class Class1
{
}
При использовании статического класса не
обязательно создавать объект класса для
обращения к классу и его членам.
9. Поля класса
Поле – это переменная, объявленная внутрикласса. Для получения доступа к полям следует
использовать свойства или методы.
Пример:
class Student
{
private string firstName;
private string lastName;
private int age;
public string group; // не рекомендуется
использовать public для поля
}
10. Создание объектов
После объявления класса можно создаватьобъекты при помощи ключевого слова new и имени
класса:
namespace HelloWorld
{
class Student
{
private string firstName;
private string lastName;
private int age;
public string group;
}
class Program
{
static void Main(string[] args)
{
Student student1 = new
Student(); //создание объекта
student1 класса Student
Student student2 = new
Student();
}
}
}
11. Доступ к членам объекта
Доступ осуществляется при помощи оператораточка «.» :
static void Main(string[] args)
{
Student student1 = new Student();
Student student2 = new Student();
student1.group = "Group1";
student2.group = "Group2";
Console.WriteLine(student1.group); // выводит "Group1"
Console.Write(student2.group);
Console.ReadKey();
}
12.
Рассмотрим пример:namespace HelloWorld
{
class Student
{
private string firstName;
private string lastName;
private int age;
public string group;
}
class Program
{
static void Main(string[] args)
{
Student student1 = new Student();
student1.firstName= "Nikolay"; //ошибка, нет доступа к
полю firstName. }
13. Константы
Константы - члены класса не отличаются отпростых констант.
Константа – это переменная, значений которой
нельзя изменить.
Константа объявляется с помощью ключевого
слова const.
Пример:
class Math
{
private const double Pi = 3.14;
}
14. Методы
Метод – это небольшая подпрограмма, котораявыполняет, в идеале, только одну функцию.
Методы позволяют сократить объем кода.
Различают статические и простые методы.
Статический метод – это метод, который не
имеет доступа к полям объекта, и для вызова
такого метода не нужно создавать экземпляр
(объект) класса, в котором он объявлен.
Простой метод – это метод, который имеет
доступ к данным объекта, и его вызов выполняется
через объект.
15. Методы
[модификаторы] <тип_возврата> ИмяМетода([параметры])
{ // Тело метода }
Пример:
1) public double Meth1(double a)
{…
return(Math.Pow(a,2))
}
2)
private void Meth2()
{…
}
16. Задание 1
Создать новый класс Tel, содержащий полядень разговора (задается целым числом в
интервале от 1 до 7), время разговора
(вещественное число) и стоимость
(вещественное число). Создать новый метод для
подсчета стоимости телефонного разговора в
зависимости от дня недели: в выходные дни
стоимость разговора меньше на 10%.
17. Свойства
Свойства класса - это член класса, которыйпредоставляет удобный механизм доступа к полю
класса (чтение поля и запись).
При использовании свойства, мы обращаемся к
нему, как к полю класса, но на самом деле
компилятор преобразовывает это обращение к
вызову соответствующего неявного метода.
Такой метод называется аксессор (accessor).
18. Свойства
Существует два аксессора:get (для получения данных из поля) и
set (для записи).
Объявление простого свойства имеет
следующую структуру:
<тип> <имя>
{
get
{ // код аксессора для чтения из поля }
set
{ // код аксессора для записи в поле }
}
19. Свойства
Пример:public class Date
{ private int month = 7;
Public int Month
{
get {
return month; }
set {
if ((value > 0) && (value < 13)) { month = value; } }
}
}
20. Свойства
Метод доступа get должен заканчиватьсяоператором return или throw.
В методе доступа set используется неявный
параметр value, тип которого соответствует типу
свойства.
21. Задание 2
Отредактируйте Задание 1 так, чтобы спомощью свойства происходила проверка
вводимого дня недели, и в случае, когда день
недели не входит в интервал от 1 до 7, выводился
запрос на повторное введение.
22. Вложенные типы
Тип, определенный внутри класса, называетсявложенным типом.
Пример:
class Container
{
class Nested
{
Nested() { }
}
}
23. Вложенные типы
Вложенные типы по умолчаниюявляются private, но могут быть также public,
protected internal, protected или internal.
Для создания нового экземпляра вложенного
класса следует использовать запись:
Container.Nested a= new Container.Nested();
24. События
Прежде чем рассмотреть события, необходимоознакомиться с понятием делегат.
Делегат – это объект, указывающий на другой
метод (или список методов) приложения, который
может быть вызван позднее.
Тип делегата объявляется с помощью
ключевого слова delegate:
delegate <возвращаемый_тип> имя
(список_параметров);
25.
using System;namespace ConsoleApplication1
{ // Создадим делегат
delegate int IntOperation (int i, int j);
class Program
{ // Организуем ряд методов
static int Sum(int x, int y)
{ return x + y; }
static int Prz(int x, int y)
{ return x * y; }
static void Main()
{ // Сконструируем делегат
IntOperation op1 = new IntOperation(Sum);
int result = op1(5, 10);
Console.WriteLine("Сумма: " + result);
// Изменим ссылку на метод
op1 = new IntOperation(Prz);
result = op1(5, 10);
Console.WriteLine("Произведение: " + result);}
}
}
26. События
Событие - это ситуация, при возникновениикоторой произойдет действие или несколько
действий.
Событие задается ключевым словом event:
public event <НазваниеДелегата>
<НазваниеСобытия>;
Для запуска события используется запись:
<НазваниеСобытия> ()
27. Задание 3
Определено два класса. Первый класс будетнаходить квадрат числа от 1 до 10, используя
цикл. Другой класс будет ждать, когда в первом
классе квадрат числа станет больше 25, и после
этого выведет в консоль фразу «Квадрат числа
больше 25!».
28.
29. Самостоятельно
Изменить в задании 3 следующие параметры:Первый класс будет находить куб числа от 10 до
20, используя цикл.
Другой класс будет ждать, когда в первом
классе куб числа станет больше 2744, и после
этого выведет в консоль фразу «Куб числа
больше 14^3!».
30. Домашнее задание
Найти и законспектировать:1. Индексаторы класса и их использование в C#.
2. Конструкторы класса в С#.
31. Самостоятельно
1. Создать новый класс, содержащий поляколичество дней (задается целым числом с
учетом того, что в месяц не более 26 рабочих
дней), среднее значение отработанных часов в
день (вещественное число) и стоимость 1 часа
(вещественное число), надбавки (в %). Создать
новый метод для подсчета заработной платы за
месяц с учетом надбавки. Использовать при
решении поля, методы, свойство (для
ограничения количества дней в рабочем месяце).
32. Самостоятельно
2. В предыдущую задачу добавьте событие:если среднее значение отработанных часов в
день превышает 8 часов, выводится сообщение
«Переработка!».
Программирование