🗊Презентация ООП и организация программы

Нажмите для полного просмотра!
ООП и организация программы, слайд №1ООП и организация программы, слайд №2ООП и организация программы, слайд №3ООП и организация программы, слайд №4ООП и организация программы, слайд №5ООП и организация программы, слайд №6ООП и организация программы, слайд №7ООП и организация программы, слайд №8ООП и организация программы, слайд №9ООП и организация программы, слайд №10ООП и организация программы, слайд №11ООП и организация программы, слайд №12ООП и организация программы, слайд №13ООП и организация программы, слайд №14ООП и организация программы, слайд №15ООП и организация программы, слайд №16ООП и организация программы, слайд №17ООП и организация программы, слайд №18ООП и организация программы, слайд №19ООП и организация программы, слайд №20ООП и организация программы, слайд №21ООП и организация программы, слайд №22ООП и организация программы, слайд №23ООП и организация программы, слайд №24ООП и организация программы, слайд №25ООП и организация программы, слайд №26

Содержание

Вы можете ознакомиться и скачать презентацию на тему ООП и организация программы. Доклад-сообщение содержит 26 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1





Объектно-Ориентированное Программирование 
Лекция 2
А.М. Задорожный
2016
Описание слайда:
Объектно-Ориентированное Программирование Лекция 2 А.М. Задорожный 2016

Слайд 2





Содержание
Эластичность ООП программ
Управление доступом и инкапсуляция
Свойства и поля данных в ООП
Описание слайда:
Содержание Эластичность ООП программ Управление доступом и инкапсуляция Свойства и поля данных в ООП

Слайд 3





Вопросы для повтоения
Что такое ООП?
Что принесло применение ООП в примере с гистограммой?
Чему соответствуют понятия Класс и Объект в функциональном программировании?
Что такое Конструктор? В чем его особенности в C#?
Как создать объект в C#?
Как вызвать метод для конкретного объекта в C#?
Описание слайда:
Вопросы для повтоения Что такое ООП? Что принесло применение ООП в примере с гистограммой? Чему соответствуют понятия Класс и Объект в функциональном программировании? Что такое Конструктор? В чем его особенности в C#? Как создать объект в C#? Как вызвать метод для конкретного объекта в C#?

Слайд 4





ООП и организация программы
Функциональный подход:
Переменная, операции применимые к типу
(int i:		+, -, *, /, %, ++, --, +=, -=, …)
ООП:
			Объект:
			Данные гистограммы
			
			Методы работы
Описание слайда:
ООП и организация программы Функциональный подход: Переменная, операции применимые к типу (int i: +, -, *, /, %, ++, --, +=, -=, …) ООП: Объект: Данные гистограммы Методы работы

Слайд 5





Использование ООП Гистограммы
Применяем гистограмму
{
	Random r = new Random();
	Histogram h = new Histogram (0, 10, 10);
	for(int i = 0; i < 1000; i++)
		h.Hist(10*r.NextDouble());
	h.Write();
	Console.WriteLine(h.MeanValue());
}
Описание слайда:
Использование ООП Гистограммы Применяем гистограмму { Random r = new Random(); Histogram h = new Histogram (0, 10, 10); for(int i = 0; i < 1000; i++) h.Hist(10*r.NextDouble()); h.Write(); Console.WriteLine(h.MeanValue()); }

Слайд 6





ООП. Эластичность
Эластичность – простота изменения программы при изменении требований.

Изменить диапазон чисел с [0, 10], до [-5,  5] и увеличить количество каналов до 25.
 
	Histogram h = new Histogram (-5, 5, 25);
	for(int i = 0; i < 1000; i++)
		h.Hist(10*r.NextDouble());
	h.Write();
	Console.WriteLine(h.MeanValue());
Понадобилось 3 изменения в 1-ой строке кода!
Описание слайда:
ООП. Эластичность Эластичность – простота изменения программы при изменении требований. Изменить диапазон чисел с [0, 10], до [-5, 5] и увеличить количество каналов до 25. Histogram h = new Histogram (-5, 5, 25); for(int i = 0; i < 1000; i++) h.Hist(10*r.NextDouble()); h.Write(); Console.WriteLine(h.MeanValue()); Понадобилось 3 изменения в 1-ой строке кода!

Слайд 7





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

- Связать с каждой гистограммой заголовок, при выводе гистограммы выводить заголовок и диапазон, в котором строилась гистограмма.
Описание слайда:
ООП. Эластичность Изменяться могут не только параметры задачи, изменяться могут требования. - Связать с каждой гистограммой заголовок, при выводе гистограммы выводить заголовок и диапазон, в котором строилась гистограмма.

Слайд 8





ООП. Эластичность
public class Histogram
{	
	public double LeftEdge RightEdge;
	public int [] Data; 	// Массив
	public string Title; 
	public Histogram(string title, double leftEdge, double rightEdge, int N)
	{
		Title = title;
		LeftEdge = leftEdge;
		RightEdge = rightEdge;
		Data = new int[N];
	}
	public void Hist(double x){   …   }
	public double MeanValue () {  …  }
	public double Write() {  …  }
}
Описание слайда:
ООП. Эластичность public class Histogram { public double LeftEdge RightEdge; public int [] Data; // Массив public string Title; public Histogram(string title, double leftEdge, double rightEdge, int N) { Title = title; LeftEdge = leftEdge; RightEdge = rightEdge; Data = new int[N]; } public void Hist(double x){ … } public double MeanValue () { … } public double Write() { … } }

Слайд 9





ООП. Эластичность
Доработаем метод Write

public class Histogram
{	
	…
	public void Write() {  
		Console.WriteLine(“Гистограмма ‘{0}’”, Title);
		Console.WriteLine(“Диапазон [{0}, {1}]”, 
					LeftEdge, RightEdge);
		Console.Write(Data[0]);
		for(int i = 1; i < Data.Length; i++)
			Console.Write(“, {0}”, Data[i]);
		Console.WriteLine();
	 }
}
Описание слайда:
ООП. Эластичность Доработаем метод Write public class Histogram { … public void Write() { Console.WriteLine(“Гистограмма ‘{0}’”, Title); Console.WriteLine(“Диапазон [{0}, {1}]”, LeftEdge, RightEdge); Console.Write(Data[0]); for(int i = 1; i < Data.Length; i++) Console.Write(“, {0}”, Data[i]); Console.WriteLine(); } }

Слайд 10





ООП. Эластичность
Использование гистограммы:

Histogram h = new Histogram (“Вес ТС на дорогах”, 0.5, 10, 20);
for(int i = 0; i < 1000; i++)
	h.Hist(10*r.NextDouble());
h.Write();
Console.WriteLine(h.MeanValue());
Описание слайда:
ООП. Эластичность Использование гистограммы: Histogram h = new Histogram (“Вес ТС на дорогах”, 0.5, 10, 20); for(int i = 0; i < 1000; i++) h.Hist(10*r.NextDouble()); h.Write(); Console.WriteLine(h.MeanValue());

Слайд 11





ООП. Выводы
На примере гистограммы:
ООП позволяет строить понятия более сложные чем заложенные в язык примитивы: числа, строки.
Классы объединяют в одном понятии данные и методы. Вызовы методов стали короче (легче изменять программу, если вызовов много)
Проще изучать. Не нужно помнить, какие методы есть у класса (Visual Studio сама подскажет)
Эластичность. Легче развивать функции гистограммы. В основном меняются методы и данные класса, а в программе, которая использует этот инструмент изменений мало.
Потенциально меньше ошибок (нельзя спутать или изменить границы, изменить массив результатов). Потенциально ясно, что чем больше гистограмм, тем приведенные выше факторы будут влиять все больше.
Описание слайда:
ООП. Выводы На примере гистограммы: ООП позволяет строить понятия более сложные чем заложенные в язык примитивы: числа, строки. Классы объединяют в одном понятии данные и методы. Вызовы методов стали короче (легче изменять программу, если вызовов много) Проще изучать. Не нужно помнить, какие методы есть у класса (Visual Studio сама подскажет) Эластичность. Легче развивать функции гистограммы. В основном меняются методы и данные класса, а в программе, которая использует этот инструмент изменений мало. Потенциально меньше ошибок (нельзя спутать или изменить границы, изменить массив результатов). Потенциально ясно, что чем больше гистограмм, тем приведенные выше факторы будут влиять все больше.

Слайд 12





Вопросы для обсуждения
Преимущества ООП.
Как изменится класс гистограмм, если нужно для каждой гистограммы учитывать и выводить сколько данных оказалось вне диапазона (левее или правее) гистограммы? 
Что пришлось бы сделать без ООП?
Как ООП влияет на применение (использование) разработанной функциональности программы, например, построение гистограмм?
Как ООП влияет на изучение разработанной функциональности?
Описание слайда:
Вопросы для обсуждения Преимущества ООП. Как изменится класс гистограмм, если нужно для каждой гистограммы учитывать и выводить сколько данных оказалось вне диапазона (левее или правее) гистограммы? Что пришлось бы сделать без ООП? Как ООП влияет на применение (использование) разработанной функциональности программы, например, построение гистограмм? Как ООП влияет на изучение разработанной функциональности?

Слайд 13





Вопросы для обсуждения
Как следует поступить программисту, если ему нужно разработать алгоритм, который будет использовать более сложные конструкции, чем отдельные числа или строки, например, точки на плоскости или в пространстве,  комплексные числа, матрицы, описания студентов, описания состояния компьютерной игры, …?
Описание слайда:
Вопросы для обсуждения Как следует поступить программисту, если ему нужно разработать алгоритм, который будет использовать более сложные конструкции, чем отдельные числа или строки, например, точки на плоскости или в пространстве, комплексные числа, матрицы, описания студентов, описания состояния компьютерной игры, …?

Слайд 14





ООП и управление доступом
Классы позволяют управлять доступом к данным и методам.
 class Histogramm
 {
        public double LeftEdge;
        public double RightEdge;
        public int[] Data; // Массив
        public string Title;
        public Histogramm(string title, double leftEdge, double rightEdge, int N) …
        public void Hist(double x) …
        public double MeanValue() …
        public void Write() …
}
Описание слайда:
ООП и управление доступом Классы позволяют управлять доступом к данным и методам. class Histogramm { public double LeftEdge; public double RightEdge; public int[] Data; // Массив public string Title; public Histogramm(string title, double leftEdge, double rightEdge, int N) … public void Hist(double x) … public double MeanValue() … public void Write() … }

Слайд 15





ООП и управление доступом
Именно слово public позволяет обращаться к этим данным и методам вне методов класса.
{
	Histogram h = new Histogram (“Вес ТС на дорогах”, 0.5, 10, 20);
	for(int i = 0; i < 1000; i++)
		h.Hist(10*r.NextDouble());
	h.Write();
	Console.WriteLine(h.MeanValue());
}
Описание слайда:
ООП и управление доступом Именно слово public позволяет обращаться к этим данным и методам вне методов класса. { Histogram h = new Histogram (“Вес ТС на дорогах”, 0.5, 10, 20); for(int i = 0; i < 1000; i++) h.Hist(10*r.NextDouble()); h.Write(); Console.WriteLine(h.MeanValue()); }

Слайд 16





ООП и управление доступом
Кроме слова public можно указывать private – доступно только для частного использования.
В объекте Histogramm недопустимо изменять массив Data, левую и правую границы в процессе использования. Их можно безболезненно изменить на private.
Описание слайда:
ООП и управление доступом Кроме слова public можно указывать private – доступно только для частного использования. В объекте Histogramm недопустимо изменять массив Data, левую и правую границы в процессе использования. Их можно безболезненно изменить на private.

Слайд 17





ООП и управление доступом
Кроме слова public можно указывать private – доступно только для частного использования.
В объекте Histogramm недопустимо изменять массив Data, левую и правую границы в процессе использования. Их можно безболезненно изменить на private.
class Histogramm
 {
        private double LeftEdge;
        private double RightEdge;
        private int[] Data; // Массив
        private string Title;
…
}
Описание слайда:
ООП и управление доступом Кроме слова public можно указывать private – доступно только для частного использования. В объекте Histogramm недопустимо изменять массив Data, левую и правую границы в процессе использования. Их можно безболезненно изменить на private. class Histogramm { private double LeftEdge; private double RightEdge; private int[] Data; // Массив private string Title; … }

Слайд 18





ООП и управление доступом
Кроме слов public и private имеются и другие (protected,  protected internal и internal). Не рассматриваются.

Если не указывать никакого квалификатора, то по умолчанию это эквивалентно internal (почти private). Это заставляет программиста уделять больше внимания тому, какой доступ разрешить к члену класса. Если программист забыл указать, то будет internal и доступ будет ограничен.

В некоторых случаях и такого регулирования оказывается недостаточным. Как, например, сделать, что бы открыть величины для чтения, но закрыть их для изменения?
Описание слайда:
ООП и управление доступом Кроме слов public и private имеются и другие (protected, protected internal и internal). Не рассматриваются. Если не указывать никакого квалификатора, то по умолчанию это эквивалентно internal (почти private). Это заставляет программиста уделять больше внимания тому, какой доступ разрешить к члену класса. Если программист забыл указать, то будет internal и доступ будет ограничен. В некоторых случаях и такого регулирования оказывается недостаточным. Как, например, сделать, что бы открыть величины для чтения, но закрыть их для изменения?

Слайд 19





ООП и управление доступом
Определение!
Возможность в ООП:
объединять в одном понятии данные и методы работы с ними 
а так же возможность управлять доступом к данным и методам 
называется Инкапсуляцией!
Описание слайда:
ООП и управление доступом Определение! Возможность в ООП: объединять в одном понятии данные и методы работы с ними а так же возможность управлять доступом к данным и методам называется Инкапсуляцией!

Слайд 20





Контрольные вопросы
Что означает термин “Управление доступом” применительно к ООП?
Как осуществляется управление доступом к членам класса (данным и методам)?
Что означает квалификатор public?
Что означает квалификатор private?
Какой доступ будет разрешен, если не указывать никакого квалификатора доступа?
Что означает понятие “инкапсуляция”?
Описание слайда:
Контрольные вопросы Что означает термин “Управление доступом” применительно к ООП? Как осуществляется управление доступом к членам класса (данным и методам)? Что означает квалификатор public? Что означает квалификатор private? Какой доступ будет разрешен, если не указывать никакого квалификатора доступа? Что означает понятие “инкапсуляция”?

Слайд 21





ООП и свойства
Свойства – это “обертки” для данных объекта, которые позволяют контролировать доступ к этим данным.
Превратить данные в свойства в C# легко. Поэтому рекомендуется никогда не использовать поля данных, а использовать ТОЛЬКО свойства.
 class Histogram
 {
        public double LeftEdge {get; set;}
        public double RightEdge {get; set;}
        private int[] Data; // Массив
        public string Title {get; set;}
…
}
Описание слайда:
ООП и свойства Свойства – это “обертки” для данных объекта, которые позволяют контролировать доступ к этим данным. Превратить данные в свойства в C# легко. Поэтому рекомендуется никогда не использовать поля данных, а использовать ТОЛЬКО свойства. class Histogram { public double LeftEdge {get; set;} public double RightEdge {get; set;} private int[] Data; // Массив public string Title {get; set;} … }

Слайд 22





ООП и свойства
Слова get и set указывают на способы доступа к свойству. Например, если не указать set, то это свойство нельзя будет изменить!
Если перед set указать квалификатор private, то изменять свойство можно будет только из методов класса!
class Histogram
 {
        public double LeftEdge {get; private set;}
        public double RightEdge {get; private set;}
        private int[] Data; // Массив
        public string Title {get; private set;}
…
}
Описание слайда:
ООП и свойства Слова get и set указывают на способы доступа к свойству. Например, если не указать set, то это свойство нельзя будет изменить! Если перед set указать квалификатор private, то изменять свойство можно будет только из методов класса! class Histogram { public double LeftEdge {get; private set;} public double RightEdge {get; private set;} private int[] Data; // Массив public string Title {get; private set;} … }

Слайд 23





ООП и свойства
Массив Data остался private и не превращен в свойство. Это не случайно, свойства с индексами объявляются несколько иначе и мы не будем нагромождать такие детали в рамках курса.
class Histogram
 {
        public double LeftEdge {get; private set;}
        public double RightEdge {get; private set;}
        private int[] Data; // Массив
        public string Title {get; private set;}
…
}
Но при этом, мы скрываем от пользователя класса важную информацию – количество каналов гистограммы.
Описание слайда:
ООП и свойства Массив Data остался private и не превращен в свойство. Это не случайно, свойства с индексами объявляются несколько иначе и мы не будем нагромождать такие детали в рамках курса. class Histogram { public double LeftEdge {get; private set;} public double RightEdge {get; private set;} private int[] Data; // Массив public string Title {get; private set;} … } Но при этом, мы скрываем от пользователя класса важную информацию – количество каналов гистограммы.

Слайд 24





ООП и свойства
Скрывая массив Data мы скрываем от пользователя класса важную информацию – количество каналов гистограммы.
Свойства позволяют решить и эту проблему. Для этого определим Вычисляемое свойство. 
Вычисляемое – значит за ним нет непосредственно поля данных, а его значение получается по некоторой формуле.
class Histogram
 {
        public double LeftEdge {get; private set;}
        public double RightEdge {get; private set;}
        private int[] Data; // Массив
        public int NChannels { get  { 
				return Data.Length;
		              }
		 }
        public string Title {get; private set;}
…
}
Описание слайда:
ООП и свойства Скрывая массив Data мы скрываем от пользователя класса важную информацию – количество каналов гистограммы. Свойства позволяют решить и эту проблему. Для этого определим Вычисляемое свойство. Вычисляемое – значит за ним нет непосредственно поля данных, а его значение получается по некоторой формуле. class Histogram { public double LeftEdge {get; private set;} public double RightEdge {get; private set;} private int[] Data; // Массив public int NChannels { get { return Data.Length; } } public string Title {get; private set;} … }

Слайд 25





Контрольные вопросы
Что такое Свойства в ООП?
Зачем они введены?
Как поле данных превратить в Свойство в C#?
Как определить свойство, которое нельзя изменять?
Как определить свойство, которое нельзя изменять вне методов класса?
Как создать вычисляемое свойство – свойство, которое не соответствует какому-нибудь полю данных?
Описание слайда:
Контрольные вопросы Что такое Свойства в ООП? Зачем они введены? Как поле данных превратить в Свойство в C#? Как определить свойство, которое нельзя изменять? Как определить свойство, которое нельзя изменять вне методов класса? Как создать вычисляемое свойство – свойство, которое не соответствует какому-нибудь полю данных?

Слайд 26





Контрольные вопросы
Что означают следующие термины:
Класс, объект?
Конструктор?
Поле данных?
Метод?
Квалификатор доступа?
Свойство?
Вычисляемое свойство?
Эластичность кода программы?
Инкапсуляция?
Описание слайда:
Контрольные вопросы Что означают следующие термины: Класс, объект? Конструктор? Поле данных? Метод? Квалификатор доступа? Свойство? Вычисляемое свойство? Эластичность кода программы? Инкапсуляция?



Похожие презентации
Mypresentation.ru
Загрузить презентацию