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


С #. ООП. Классы

Содержание

План лекцииДве роли классовСинтаксис описания классаМодификаторы доступаМетоды-свойстваИндексаторы Конструкторы классаПример проектирования класса

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

Слайд 1С#. ООП. Классы

С#. ООП. Классы

Слайд 2План лекции
Две роли классов
Синтаксис описания класса
Модификаторы доступа
Методы-свойства
Индексаторы
Конструкторы класса
Пример проектирования

класса

План лекцииДве роли классовСинтаксис описания классаМодификаторы доступаМетоды-свойстваИндексаторы Конструкторы классаПример проектирования класса

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

public class Rational {тело_класса}

В теле класса могут

быть объявлены:
константы;
поля;
конструкторы и деструкторы;
методы;
события;
делегаты;
классы (структуры, интерфейсы, перечисления).

Синтаксис описания класса[атрибуты][модификаторы]class имя_класса[:список_родителей]{тело_класса}public class Rational {тело_класса}В теле класса могут быть объявлены:константы;поля;конструкторы и деструкторы;методы;события;делегаты;классы (структуры, интерфейсы, перечисления).

Слайд 4Методы-свойства
Пять наиболее употребительных стратегий:
чтение, запись (Read, Write);
чтение, запись при первом

обращении (Read, Write-once);
только чтение (Read-only);
только запись (Write-only);
ни чтения, ни записи

(Not Read, Not Write).
Методы-свойстваПять наиболее употребительных стратегий:чтение, запись (Read, Write);чтение, запись при первом обращении (Read, Write-once);только чтение (Read-only);только запись (Write-only);ни

Слайд 5Методы-свойства
public class Person
{
//поля (все закрыты)
string fam="", status="", health="";
int age=0, salary=0;
//методы

- свойства
///
///стратегия: Read,Write-once (Чтение, запись при
///первом обращении)
///
public

string Fam
{
set {if (fam == "") fam = value;}
get {return(fam);}
}

Методы-свойстваpublic class Person{	//поля (все закрыты)	string fam=

Слайд 6Методы-свойства
/// стратегия: Read-only(Только чтение)
public string Status
{
get {return(status);}
}
///

стратегия: Read,Write (Чтение, запись)
public int Age
{
set
{ age

= value;
if(age < 7)status ="ребенок";
else if(age <17)status ="школьник";
else if (age < 22)status = "студент";
else status = "служащий";
}
get {return(age);}
}


Методы-свойства/// стратегия: Read-only(Только чтение) 	public string Status	{		get {return(status);}	}	/// стратегия: Read,Write (Чтение, запись) 	public int Age	{		set		{

Слайд 7Методы-свойства
///
///стратегия: Write-only (Только запись)
///
public int Salary
{
set {salary =

value;}
}
}

Методы-свойства/// 	///стратегия: Write-only (Только запись)	/// 	public int Salary	{		set {salary = value;}	}}

Слайд 8Пример работы с полями
public void TestPersonProps()
{
Person pers1 = new Person();
pers1.Fam

= "Петров";
pers1.Age = 21;
pers1.Salary = 1000;
Console.WriteLine ("Фам={0}, возраст={1}, статус={2}",
pers1.Fam, pers1.Age,

pers1.Status);
pers1.Fam = "Иванов"; pers1.Age += 1;
Console.WriteLine ("Фам={0}, возраст={1}, статус={2}",
pers1.Fam, pers1.Age, pers1.Status);
}//TestPersonProps

Пример работы с полямиpublic void TestPersonProps(){	Person pers1 = new Person();	pers1.Fam =

Слайд 9Индексаторы
const int Child_Max = 20; //максимальное число детей
Person[] children =

new Person[Child_Max];
int count_children=0; //число детей
public Person this[int i] //индексатор
{
get {if

(i>=0 && i< count_children)return(children[i]);
else return(children[0]);}
set
{
if (i==count_children && i< Child_Max)
{children[i] = value; count_children++;}
}
}


Индексаторыconst int Child_Max = 20; //максимальное число детейPerson[] children = new Person[Child_Max];int count_children=0; //число детейpublic Person this[int

Слайд 10Индексаторы
public void TestPersonChildren()
{
Person pers1 = new Person(), pers2 = new

Person();
pers1.Fam = "Петров"; pers1.Age = 42;
pers1.Salary = 10000;
pers1[pers1.Count_children] = pers2;
pers2.Fam

="Петров"; pers2.Age = 21; pers2.Salary = 1000;
Person pers3= new Person("Петрова");
pers1[pers1.Count_children] = pers3;
pers3.Fam ="Петрова"; pers3.Age = 5;
Console.WriteLine ("Фам={0}, возраст={1}, статус={2}",
pers1.Fam, pers1.Age, pers1.Status);
Console.WriteLine ("Сын={0}, возраст={1}, статус={2}",
pers1[0].Fam, pers1[0].Age, pers1[0].Status);
Console.WriteLine ("Дочь={0}, возраст={1}, статус={2}",
pers1[1].Fam, pers1[1].Age, pers1[1].Status);
}


Индексаторыpublic void TestPersonChildren(){	Person pers1 = new Person(), pers2 = new Person();	pers1.Fam =

Слайд 11Индексаторы

Индексаторы

Слайд 12Конструкторы и деструкторы класса
Person pers1 = new Person(), pers2 =

new Person();
Person pers3= new Person("Петрова");

static Person()
{
Console.WriteLine("Выполняется статический конструктор!");
}


~Person()
{
//Код деструктора
}

Конструкторы и деструкторы классаPerson pers1 = new Person(), pers2 = new Person();Person pers3= new Person(

Слайд 13Пример проектирования класса
/// Класс Rational определяет новый тип данных

-
/// рациональные числа и основные операции над ними - сложение,


/// умножение, вычитание и деление. Рациональное число задается
/// парой целых чисел (m,n) и изображается обычно в виде дроби m/n.
/// Число m называется числителем,n - знаменателем. Для
/// каждого рационального числа существует множество его
/// представлений, например, 1/2, 2/4, 3/6, 6/12 - задают
/// одно и тоже рациональное число. Среди всех представлений
/// можно выделить то, в котором числитель и знаменатель
/// взаимно несократимы. Такой представитель будет храниться
/// в полях класса. Операции над рациональными числами
/// определяются естественным для математики образом
///
 
public class Rational
{
// Описание тела класса Rational
}//Rational


Пример проектирования класса/// Класс Rational определяет новый тип данных -/// рациональные числа и основные операции над ними

Слайд 14Конструкторы класса Rational
/// Конструктор класса. Создает рациональное число
/// m/n,

эквивалентное a/b, но со взаимно несократимыми
/// числителем и знаменателем. Если

b=0, то результатом
/// является рациональное число 0 -пара (0,1).
/// числитель
/// знаменатель
public Rational(int a, int b)
{
if(b==0) {m=0; n=1;}
else
{
//приведение знака
if( b<0) {b=-b; a=-a;}
//приведение к несократимой дроби
int d = nod(a,b);
m=a/d; n=b/d;
}
}


Конструкторы класса Rational/// Конструктор класса. Создает рациональное число/// m/n, эквивалентное a/b, но со взаимно несократимыми/// числителем и

Слайд 15Методы класса Rational
///
/// Закрытый метод класса.
/// Возвращает наибольший общий

делитель чисел a,b
///
/// первое число
/// второе число,

положительное
/// НОД(a,b)
int nod(int m, int n)
{
int p=0;
m=Math.Abs(m); n =Math.Abs(n);
if(n>m){p=m; m=n; n=p;}
do
{
p = m%n; m=n; n=p;
}while (n!=0);
return(m);
}//nod



Методы класса Rational/// /// Закрытый метод класса./// Возвращает наибольший общий делитель чисел a,b/// /// первое число/// второе

Слайд 16Печать рациональных чисел
public void PrintRational(string name)
{
Console.WriteLine(" {0} = {1}/{2}",name,m,n);
}



Печать рациональных чиселpublic void PrintRational(string name){	Console.WriteLine(

Слайд 17Тестирование создания рациональных чисел
public void TestCreateRational()
{
Rational r1=new Rational(0,0), r2 =

new Rational(1,1);
Rational r3=new Rational(10,8), r4 = new Rational(2,6);
Rational r5=new Rational(4,-12),

r6 = new Rational (-12,-14);
r1.PrintRational("r1:(0,0)");
r2.PrintRational("r2:(1,1)");
r3.PrintRational("r3:(10,8)");
r4.PrintRational("r4:(2,6)");
r5.PrintRational("r5: (4,-12)");
r6.PrintRational("r6: (-12,-14)");
}


Тестирование создания рациональных чиселpublic void TestCreateRational(){	Rational r1=new Rational(0,0), r2 = new Rational(1,1);	Rational r3=new Rational(10,8), r4 = new

Слайд 18Операции над рациональными числами. Сложение
public Rational Plus(Rational a)
{
int u,v;
u =

m*a.n +n*a.m; v= n*a.n;
return( new Rational(u, v));
}//Plus
 
public static Rational operator

+(Rational r1, Rational r2)
{
return (r1.Plus(r2));
}


Операции над рациональными числами. Сложениеpublic Rational Plus(Rational a){	int u,v;	u = m*a.n +n*a.m; v= n*a.n;	return( new Rational(u, v));}//Plus public

Слайд 19Операции над рациональными числами. Сложение
public void TestPlusRational()
{
Rational r1=new Rational(0,0), r2

= new Rational(1,1);
Rational r3=new Rational(10,8), r4 = new Rational(2,6);
Rational r5=new

Rational(4,-12), r6 = new Rational(-12,-14);
Rational r7,r8, r9,r10, r11, r12;
r7 = r1.Plus(r2); r8 = r3.Plus(r4); r9 = r5.Plus(r6);
r10 = r1+r2; r11 = r3+r4; r12 = r5+r6+r10+r11;
r1.PrintRational("r1:(0,0)"); r2.PrintRational("r2:(1,1)");
r3.PrintRational("r3:(10,8)"); r4.PrintRational("r4:(2,6)");
r5.PrintRational("r5: (4,-12)"); r6.PrintRational
("r6: (-12,-14)");
r7.PrintRational("r7: (r1+r2)"); r8.PrintRational
("r8: (r3+r4)");
r9.PrintRational("r9: (r5+r6)"); r10.PrintRational
("r10: (r1+r2)");
r11.PrintRational("r11: (r3+r4)");
r12.PrintRational("r12: (r5+r6+r10+r11)");
}


Операции над рациональными числами. Сложениеpublic void TestPlusRational(){	Rational r1=new Rational(0,0), r2 = new Rational(1,1);	Rational r3=new Rational(10,8), r4 =

Слайд 20Операции над рациональными числами. Вычитание
public Rational Minus(Rational a)
{
int u,v;
u =

m*a.n - n*a.m; v= n*a.n;
return( new Rational(u, v));
}//Minus
 

public static Rational

operator -(Rational r1, Rational r2)
{
return (r1.Minus(r2));
}


Операции над рациональными числами. Вычитаниеpublic Rational Minus(Rational a){	int u,v;	u = m*a.n - n*a.m; v= n*a.n;	return( new Rational(u,

Слайд 21Операции над рациональными числами. Умножение
public Rational Mult(Rational a)
{
int u,v;
u =

m*a.m; v= n*a.n;
return( new Rational(u, v));
}//Mult
 

public static Rational operator *(Rational

r1, Rational r2)
{
return (r1.Mult(r2));
}


Операции над рациональными числами. Умножениеpublic Rational Mult(Rational a){	int u,v;	u = m*a.m; v= n*a.n;	return( new Rational(u, v));}//Mult public static

Слайд 22Операции над рациональными числами. Деление
public Rational Divide(Rational a)
{
int u,v;
u =

m*a.n; v= n*a.m;
return( new Rational(u, v));
}//Divide
 

public static Rational operator /(Rational

r1, Rational r2)
{
return (r1.Divide(r2));
}


Операции над рациональными числами. Делениеpublic Rational Divide(Rational a){	int u,v;	u = m*a.n; v= n*a.m;	return( new Rational(u, v));}//Divide public static

Слайд 23Пример применения
public void TestOperRational()
{
Rational r1=new Rational(1,2), r2 = new Rational(1,3);
Rational

r3, r4, r5, r6 ;
r3 = r1- r2; r4 =

r1*r2; r5 = r1/r2; r6 = r3+r4*r5;
r1.PrintRational("r1: (1,2)"); r2.PrintRational("r2: (1,3)");
r3.PrintRational("r3: (r1-r2)"); r4.PrintRational("r4: (r1*r2)");
r5.PrintRational("r5: (r1/r2)");
r6.PrintRational("r6: (r3+r4*r5)");
}


Пример примененияpublic void TestOperRational(){	Rational r1=new Rational(1,2), r2 = new Rational(1,3);	Rational r3, r4, r5, r6 ;	r3 = r1-

Слайд 24Вопросы
? ? ?

Вопросы? ? ?

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

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

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

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

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


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

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