Объекты
<<  Отношения объектов Общие свойства и отличительные признаки группы объектов  >>
Картинок нет
Картинки из презентации «Жизненный цикл объектов» к уроку окружающего мира на тему «Объекты»

Автор: Айдар. Чтобы познакомиться с картинкой полного размера, нажмите на её эскиз. Чтобы можно было использовать все картинки для урока окружающего мира, скачайте бесплатно презентацию «Жизненный цикл объектов.ppt» со всеми картинками в zip-архиве размером 509 КБ.

Жизненный цикл объектов

содержание презентации «Жизненный цикл объектов.ppt»
Сл Текст Сл Текст
1Жизненный цикл объектов. Удаление… 10интерфейсов. + Стандартные интерфейсы
.NET автоматически удалит объект, когда он .Net.
больше не будет нужен. Создание… …объекта 11Интерфейс — это набор семантически
в области «управляемой кучи » (managed связанных абстрактных членов. public
heap) с помощью new. А как среда interface IDegree { byte
выполнения определяет, что объект больше GetNumberOfPoints(); //Автоматически
не нужен????? (неявным образом) этот член //интерфейса
2У нас получится… managed heap. c1. c2. становится абстрактным }. Преимущества:
c3. Empty… Car car1 = new Car(); Car car2 Множественное наследование; 100% гарантия
= new Car(); Car car3 = new Car(); отсутствия неабстрактных методов и членов;
3Завершение ссылки на объект. Вообще Нет реализаций по умолчанию; Очевидно, что
говоря, нет… Для таких случаев создать «объект интерфейса» нельзя…
предусмотрена возможность реализации в 12Примеры: NB: В классе либо должны быть
нашем классе метода реализованы все методы данного интерфейса,
System.Object.Finalize(). НУЖНО в наш либо этот интерфейс вообще не реализуется
класс ввести «деструктор»: GC — половинчатого решения быть не может!
(GarbageCollector) или СборщикМусора public class Triangle :Shape,IDegree {
работает автоматически, НО! Всегда ли это public Triangle(){ } public
хорошо? public class Car :Object { ~Саг() Triangle(string name):base(name){ } public
{ //Закрывайте все открытые //объектом override void Draw();
ресурсы! //Далее в С# будет автоматически Console.WriteLine("Drawing {0} the
//вызван базовый метод Finalize() } }. Car Triangle“,PetName}: public byte
c1 = new Car(); Ссылка на c1 попадает в GetNumberOfPoints() { return 3; } }.
очередь завершения. 13Получение ссылок на интерфейс. 1. 2.
4IDisposable. Интерфейс, созданный для 3. Triangle tr =new
обеспечения единообразия методов Triangle(“first"); IDegree itfDg =
Dispose(). public interface IDisposable { (IDegree)tr;
public void Dispose(); }. Применим его для Console.WriteLine(itfDg.GetNumberOfPoints(
класса Car: public class Car :IDisposable ); Circle cr =new Circle(“circ1");
{ public void Dispose() { //...Закрываем IDegree itfDg = (IDegree)cr;
открытые // внутренние ресурсы } }. Про Console.WriteLine(itfDg.GetNumberOfPoints(
интерфейсы как таковые поговорим позже… ); InvalidCastException. Но! Triangle tr
Возможно сочетание с пользовательским =new Triangle(“second"); IDegree
деструктором. itfDg2: itfDg2 = tr as IDegree; if(itfDg2
5А вот и Сборщик Мусора… GC – как и все != null)
остальное в C#, это объект!.. …Класса Console.WriteLine(itfDg2.GetNumberOfPoints
system.Gc. Метод, свойство. Что делает? )); else Console.WriteLine("OOPS! No
Collect([int numGen]). Запускает GC [для degrees..."); Triangle tr =new
конкретного поколения]. GetGeneration(). Triangle(); if(tr is IDegree)
Возвращает поколение. MaxGeneration. Console.WriteLine(tr.GetNumberOfPoints());
Возвращает макс поколение, поддерживаемое else Console.WriteLine(“OOPS! No
данной системой. ReRegisterForFinalize(). degree...”);
Отменяет действие след. функции. 14Интерфейсы как параметры. public
SupressFinalize(). Устанавливает флаг interface IDraw3D { void Draw3D(); }.
запрещения завершения для объектов. public class ShapesApp { //Будут
GetTotalMemory(boolean bUpdate). нарисованы все //объекты,поддерживающие
Количество байт, занятое в куче. интерфейс //IDraw3D public static void
6Примеры… public class Саг :IDisposable DrawThisShapeIn3D(IDraw3D itf3d) {
{ ~Car() { Dispose(); } public void itf3d.Draw3D(); } public static int
Dispose() { //Закрываем открытые Main(string [] args) { Shape [] s ={new
//внутренние //ресурсы GС.SupressFinalize Circle(), new Triangle(), new
(this); } }. public class GCApp { public Circle(“JoJo")}; for (int
static int Main(string [] args) { i=0;i<s.Length;i++) { if (s[i] is
Console.WriteLine(“Heap memory in IDraw3D) DrawThisShapeln3D((IDraw3D)s
use:{0}", [i]); return 0; } } }. public class Circle
GC.GetTotalMemory(false).ToStrlng()); Саг :Shape,IDraw3D { public void Draw3D() {
c1,с2,сЗ,с4; c1 = new Car ("Car Console.WriteLine(“Drawing Circle in
one“,40,10); c2 = new Car ("Car 3D!"); } }.
two",70,5); c3 = new Car ("Car 15Явная реализация интерфейса. Теперь
three“,200,100); c4 = new Car (“Car сделаем тот же интерфейс, но назовем метод
four",140,80); //Применяем метод Draw() вместо Draw3D (возникнут ли у нас
Dispose() к некоторым //объектам. В проблемы? Ведь есть же и базовый метод
результате завершение //для них будет Draw…). А теперь кусочек кода… //Вызываем
отменено c1.Dispose(); c3.Dispose(); Line.Draw() Line myLine =new Line();
//Вызываем метод Finalize() для myLine.Draw(); //Вызываем Line.Draw() еще
//объектов,остающихся в очереди раз. но уже по-другому
//завершений GC.Collect(); return 0; } }. (IDraw3D)myLine.Draw(); И что мы получим в
7Подробнее о поколениях. Когда сборщик результате? public interface IDraw3D {
мусора помечает объекты для удаления он не void Draw(); }. public class Line
проверяет все объекты подряд (это может :Shape,IDraw3D { public override void
занять много времени)… Для этого Draw() { Console.WriteLine(“Drawing a
используются поколения, которые задают line..."}; } }.
своего рода приоритет в работе GC. 16А получим мы вызов одной и той же
Поколение. Кто попадает? 1. Объекты, еще функции! Чтобы такого не происходило и
не прошедшие проверку GC. 2. Объекты, используется явная реализация
прошедшие 1 проверку GC, но еще не интерфейса(explicit interface
удаленные(было достаточно места в куче?). implementation). Вот как это работает…
3. Объекты, которые пережили > 1 Public class line :shape,idraw3d {
проверки GC. //реализация интерфейса //!!!!!!!! //здесь
8Пример… public static int Main(string нет public!!!! Void idraw3d.Draw() {
[ ] args) { Console.WriteLine(“Heap memory console.Writeline(“drawing a 3D
in use:“ line..."); } //Замещение базовой
+GC.GetTotalMemory(false).ToString()); Саr функции public override void draw() {
c1,с2,сЗ,с4; c1 =new Car(“Car console.Writeline(“drawing a
one",40,10); c2 =new Car(“Car line..."); } }.
two“,70,5); сЗ =new Car(“Car 17Создание иерархий интерфейсов. В
three”,200,100); c4 =new Car(“Car отличии от классов, у интерфейса может
four“,140,80); Console.WriteLine(“C1 is быть несколько базовых интерфейсов. public
gen {0}“,GC.GetGeneration(c1)}; interface IDraw { void Draw(); } public
Console.WriteLine(“C2 is gen interface IDraw2 :IDraw { void
{0}”,GC.GetGeneration(c2)); DrawToPrinter(); } public interface IDraw3
Console.WriteLine(“CS is gen :IDraw2 { void DrawToMetaFile(); }. Если
{0}",GC.GetGeneration(c3)); мы хотим, чтобы наш класс поддерживал все
Console.WriteLine(“C4 is gen эти методы, то он должен производиться от
{0}“,GC.GetGeneration(c4)); //Удаляем IDraw3, пример следует…
вручную некоторые объекты c1.Dispose(); 18. . public class Superlmage :IDraw3 {
c2.Dispose(); GC.Collect(0); //явная реализация интерфейсов // (мы же
Console.WriteLine(“C1 is gen помним что это?;]) void IDraw.Draw() {
{0}".GC.GetGeneration(c1)); //Обычный вывод на экран } void
Console.WriteLine("C2 is gen IDraw2.DrawToPrinter() { //Вывод на
{0}",GC.GetGeneration(c2)); принтер } void IDraw3.DrawToMetafile() {
Console.WriteLine(“C3 is gen //Вывод в метафайл } }. Пример
{0}",GC.GetGeneration(c3)); использования(кратко): SuperImage si=new
Console.WriteLine("C4 is gen SuperImage(); IDraw itfDraw=(IDraw)si;
{0}",GC.GetGeneration(c4)); itfDraw.Draw(); If(itfdraw is idraw3) {
Console.WriteLine(“Heap memory in (idraw3)itfdraw.Drawtometafilе();
use:"+GC.GetTotalMemory(false).ToStri (idraw3)itfdraw.Drawtoprinter(); }.
g()); return 0; }. 19Теперь рассмотрим наш последний
9Итак… Продолжение следует… Теперь мы пример, в котором все те же возможности,
знаем о жизненном цикле объектов и о но уже используя множественное
сборщике мусора ВСЕ (по крайней мере, наследование интерфейсов… Итак… Пусть
что-то мы теперь знаем точно…)!!! Но тем интерфейсы будут «простыми» (без
не менее, не стоит использовать все наследования). Тогда…Наш класс станет
известные нам методы только потому, что мы таким. public interface IDraw { void
их знаем! GC будет устраивать нас в Draw(); } public interface IDraw2 { void
большинстве случаев, а определять логику DrawToPrinter(); } public interface IDraw2
нашего пользовательского деструктора С# { void DrawToMetaFile(); }. public class
или реализовывать интерфейс IDisposable Superlmage :IDraw,IDraw2,IDraw3 { void
для принудительного освобождения ресурсов IDraw.Draw() { //Обычный вывод на экран }
объектом нашего класса нужно только в void IDraw2.DrawToPrinter() { //Вывод на
случаях необходимости. принтер } void IDraw3.DrawToMetafile() {
10Интерфейсы. В этой главе… Создание и //Вывод в метафайл } }.
реализация интерфейсов. Получение ссылок 20И, наконец…
на интерфейсы. Создание иерархий 21…the end!!!
Жизненный цикл объектов.ppt
http://900igr.net/kartinka/okruzhajuschij-mir/zhiznennyj-tsikl-obektov-174968.html
cсылка на страницу

Жизненный цикл объектов

другие презентации на тему «Жизненный цикл объектов»

«Вставка объектов в текст» - Вставка в текст символов. Выбрать пункт ТОЧЕЧНЫЙ РИСУНОК PAINTBRUSH. Использование автофигур для подготовки схем. В окне MS Clip Gallery выбрать один из рисунков. Копирование графического объекта. Выберите инструмент Обтекание текстом. Вставка в текст готовых рисунков. Информатика. Выделить объект, вырезать в буфер, переместить курсор в новую позицию и вставить.

«Циклы в Паскале» - Проверка на компьютере правильности алгоритма производится с помощью тестов. Этапы решения расчетной задачи на компьютере. Подобные задачи решает раздел математики, которые называются комбинаторикой. Запустить программу на паскале. Напишем программу: Задача о перестановке букв. 3. Построение алгоритмов.

«МО гуманитарного цикла» - Примерный план месячника ГУМАНИТАРНОГО ЦИКЛА. Совершенствовать межпредметные связи в преподавании предметов гуманитарного цикла. 1. Анкетирования 2. Заседания МО 3. Предметные недели 4. Участие в методических семинарах, педсоветах. Члены школьного МО учителей гуманитарного цикла. Изучение нормативных документов и методических новинок.

«Состав и действия объектов» - Читать. Отгадка. Действия. Игра «Что у меня есть?». Наполнить водой. Хвост. Дневник. (Состав и действия объекта) 3 класс. Учебники. Носик. Есть кольчуга, а не воин, Портфель. Принцесс. Что умеет? Из чего состоит? Веер. Крылья. Игра «Угадайка». Слушать. Кипятить. Состав. Игра «Повторяшки». Угадай предмет.

«Классы объектов C» - Ввод и вывод. World!"); return 0; } }. Для создания объекта используется слово «new». Объявление Main(). Структурные типы. Разрядность всех встроенных типов фиксирована и постоянна. WriteLine("Hello. F или f G или g N или п X или х. Средства форматирования строк в С#. Память для структурных типов выделяется из стека.

«Отношение объектов» - Отношения. Плывёт… В каких отношениях могут находиться любые объекты? Мост через пролив длиннее моста через ущелье. В каких отношениях могут быть только объекты некоторых видов? Присматривают… Имя отношения обозначает характер связи между объектами. Мост через ущелье короче моста через пролив. Вершина слева ниже.

Объекты

7 презентаций об объектах
Урок

Окружающий мир

79 тем
Картинки