🗊Презентация Интерфейсы

Нажмите для полного просмотра!
Интерфейсы, слайд №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

Содержание

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

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


Слайд 1





Интерфейсы
Лекция 14
Описание слайда:
Интерфейсы Лекция 14

Слайд 2





Интерфейс
Интерфейс содержит определения для группы определенного функционала, который класс или структура могут реализовывать
Описание слайда:
Интерфейс Интерфейс содержит определения для группы определенного функционала, который класс или структура могут реализовывать

Слайд 3





Интерфейс
Определяется интерфейс с помощью ключевого слова интерфейс (interface).
interface IEquatable<T> { 
bool Equals(T obj); 
}
Описание слайда:
Интерфейс Определяется интерфейс с помощью ключевого слова интерфейс (interface). interface IEquatable<T> { bool Equals(T obj); }

Слайд 4


Интерфейсы, слайд №4
Описание слайда:

Слайд 5





Интерфейсы не могут содержать
Интерфейсы не могут содержать члены данных. 
В них нельзя также определить конструкторы, деструкторы. 
Ни один из членов интерфейса не может быть объявлен как static.
В интерфейсе описывается только сигнатура.
Описание слайда:
Интерфейсы не могут содержать Интерфейсы не могут содержать члены данных. В них нельзя также определить конструкторы, деструкторы. Ни один из членов интерфейса не может быть объявлен как static. В интерфейсе описывается только сигнатура.

Слайд 6





Интерфейсные свойства
// Интерфейсное свойство 
тип имя{ 
get; 
set; }
Описание слайда:
Интерфейсные свойства // Интерфейсное свойство тип имя{ get; set; }

Слайд 7





Интерфейс или абстрактный класс
Интерфейс необходим:
Когда необходимо наделить объект различным поведением.
Когда в иерархиях наследования методы должны каждый раз иметь новую реализацию.
Когда используемые классы заранее неизвестны.
Описание слайда:
Интерфейс или абстрактный класс Интерфейс необходим: Когда необходимо наделить объект различным поведением. Когда в иерархиях наследования методы должны каждый раз иметь новую реализацию. Когда используемые классы заранее неизвестны.

Слайд 8





Ключевое слово as
Помогает определить есть ли в заданном объекте интерфейс. Если объект удается интерпретировать как указанный интерфейс, то возвращается ссылка на интересующий интерфейс, а если нет, то ссылка null. 
Описание слайда:
Ключевое слово as Помогает определить есть ли в заданном объекте интерфейс. Если объект удается интерпретировать как указанный интерфейс, то возвращается ссылка на интересующий интерфейс, а если нет, то ссылка null. 

Слайд 9





Ключевое слово as
IInfo obj = ui1 as IInfo; 
if (obj != null) 
Console.WriteLine("Тип UI поддерживает интерфейс IInfo");
else Console.WriteLine(":(");
Описание слайда:
Ключевое слово as IInfo obj = ui1 as IInfo; if (obj != null) Console.WriteLine("Тип UI поддерживает интерфейс IInfo"); else Console.WriteLine(":(");

Слайд 10





Ключевое слово is
 Если запрашиваемый объект не совместим с указанным интерфейсом, возвращается значение false, а если совместим, то true.
Описание слайда:
Ключевое слово is  Если запрашиваемый объект не совместим с указанным интерфейсом, возвращается значение false, а если совместим, то true.

Слайд 11





Ключевое слово is
if (ui1 is IInfo) Console.WriteLine("Тип UI поддерживает интерфейс IInfo"); else Console.WriteLine(":(");
Описание слайда:
Ключевое слово is if (ui1 is IInfo) Console.WriteLine("Тип UI поддерживает интерфейс IInfo"); else Console.WriteLine(":(");

Слайд 12





Наследование интерфейсов
Один интерфейс может наследовать другой.
Использовать иерархию интерфейсов может быть удобно, когда нужно расширить функциональность определенного интерфейса без нарушения уже существующих кодовых баз.
Описание слайда:
Наследование интерфейсов Один интерфейс может наследовать другой. Использовать иерархию интерфейсов может быть удобно, когда нужно расширить функциональность определенного интерфейса без нарушения уже существующих кодовых баз.

Слайд 13





Явная реализация интерфейса
Единственный класс или структура может реализовать любое количество интерфейсов. Из-за этого всегда существует вероятность реализации интерфейсов с членами, имеющими идентичные имена. Когда для реализации интерфейса указывается еще и его имя, то это называется явная реализация.
Описание слайда:
Явная реализация интерфейса Единственный класс или структура может реализовать любое количество интерфейсов. Из-за этого всегда существует вероятность реализации интерфейсов с членами, имеющими идентичные имена. Когда для реализации интерфейса указывается еще и его имя, то это называется явная реализация.

Слайд 14





Стандартные интерфейсы
В библиотеках базовых классов .NET поставляются сотни предопределенных типов интерфейсов, которые реализуются в различных классах и структурах.
Описание слайда:
Стандартные интерфейсы В библиотеках базовых классов .NET поставляются сотни предопределенных типов интерфейсов, которые реализуются в различных классах и структурах.

Слайд 15





Сравнение объектов
Интерфейс IComparable определен в пространстве имен System. Он содержит всего один метод CompareTo, возвращающий результат сравнения двух объектов — текущего и переданного ему в качестве параметра:
interface IComparable
{
    int CompareTo( object obj )
}
Описание слайда:
Сравнение объектов Интерфейс IComparable определен в пространстве имен System. Он содержит всего один метод CompareTo, возвращающий результат сравнения двух объектов — текущего и переданного ему в качестве параметра: interface IComparable {     int CompareTo( object obj ) }

Слайд 16





Сравнение объектов
Метод должен возвращать:
0, если текущий объект и параметр равны;
отрицательное число, если текущий объект меньше параметра;
положительное число, если текущий объект больше параметра.
Описание слайда:
Сравнение объектов Метод должен возвращать: 0, если текущий объект и параметр равны; отрицательное число, если текущий объект меньше параметра; положительное число, если текущий объект больше параметра.

Слайд 17





Пример
class Monster : IComparable
    {
        public Monster( int health, int ammo, string name )
        {            this.health = health;
            this.ammo   = ammo;
            this.name   = name;        }
       virtual public void Passport()
        {
            Console.WriteLine( "Monster {0} \t health = {1} ammo = {2}",
                               name, health, ammo );
        }
 
       
Описание слайда:
Пример class Monster : IComparable     {         public Monster( int health, int ammo, string name )         {            this.health = health;             this.ammo   = ammo;             this.name   = name;        }        virtual public void Passport()         {             Console.WriteLine( "Monster {0} \t health = {1} ammo = {2}",                                name, health, ammo );         }          

Слайд 18





Пример
 public int CompareTo( object obj )          // реализация интерфейса
        {
            Monster temp = (Monster) obj;
            if ( this.health > temp.health ) return  1;
            if ( this.health < temp.health ) return -1;
            return 0;
        }
 
        string name;
        int health, ammo;
    }
Описание слайда:
Пример public int CompareTo( object obj )          // реализация интерфейса         {             Monster temp = (Monster) obj;             if ( this.health > temp.health ) return  1;             if ( this.health < temp.health ) return -1;             return 0;         }           string name;         int health, ammo;     }

Слайд 19





Сортировка по разным критериям (интерфейс IComparer)

Пример сортировки массива объектов из предыдущего листинга по именам (свойство Name, класс SortByName) и количеству вооружений (свойство Ammo, класс SortByAmmo)
Описание слайда:
Сортировка по разным критериям (интерфейс IComparer) Пример сортировки массива объектов из предыдущего листинга по именам (свойство Name, класс SortByName) и количеству вооружений (свойство Ammo, класс SortByAmmo)

Слайд 20





public class SortByName : IComparer                               //
public class SortByName : IComparer                               //
        {
            int IComparer.Compare( object ob1, object ob2 )
            {
                Monster m1 = (Monster) ob1;
                Monster m2 = (Monster) ob2;
                return String.Compare( m1.Name, m2.Name );
            }
        }
 
        public class SortByAmmo : IComparer                               //
        {
            int IComparer.Compare( object ob1, object ob2 )
            {
                Monster m1 = (Monster) ob1;
                Monster m2 = (Monster) ob2;
                if ( m1.Ammo > m2.Ammo ) return  1;
                if ( m1.Ammo < m2.Ammo ) return -1;
                return 0;
            }
        }
Описание слайда:
public class SortByName : IComparer                               // public class SortByName : IComparer                               //         {             int IComparer.Compare( object ob1, object ob2 )             {                 Monster m1 = (Monster) ob1;                 Monster m2 = (Monster) ob2;                 return String.Compare( m1.Name, m2.Name );             }         }           public class SortByAmmo : IComparer                               //         {             int IComparer.Compare( object ob1, object ob2 )             {                 Monster m1 = (Monster) ob1;                 Monster m2 = (Monster) ob2;                 if ( m1.Ammo > m2.Ammo ) return  1;                 if ( m1.Ammo < m2.Ammo ) return -1;                 return 0;             }         }

Слайд 21





Клонирование объектов
Если необходимо скопировать в другую область памяти поля объекта, можно воспользоваться методом MemberwiseClone. При этом объекты, на которые указывают поля объекта, в свою очередь являющиеся ссылками, не копируются.
Описание слайда:
Клонирование объектов Если необходимо скопировать в другую область памяти поля объекта, можно воспользоваться методом MemberwiseClone. При этом объекты, на которые указывают поля объекта, в свою очередь являющиеся ссылками, не копируются.

Слайд 22





Клонирование объектов
Для создания полностью независимых объектов необходимо глубокое клонирование, когда в памяти создается дубликат всего дерева объектов. 
Алгоритм глубокого клонирования весьма сложен, поскольку требует рекурсивного обхода всех ссылок объекта и отслеживания циклических зависимостей.
Описание слайда:
Клонирование объектов Для создания полностью независимых объектов необходимо глубокое клонирование, когда в памяти создается дубликат всего дерева объектов. Алгоритм глубокого клонирования весьма сложен, поскольку требует рекурсивного обхода всех ссылок объекта и отслеживания циклических зависимостей.

Слайд 23





Клонирование объектов
Объект, имеющий собственные алгоритмы клонирования, должен объявляться как наследник интерфейса ICloneable и переопределять его единственный метод Clone.
Описание слайда:
Клонирование объектов Объект, имеющий собственные алгоритмы клонирования, должен объявляться как наследник интерфейса ICloneable и переопределять его единственный метод Clone.

Слайд 24





class Monster : ICloneable
class Monster : ICloneable
    {   public Monster( int health, int ammo, string name )
        {
            this.health = health;
            this.ammo   = ammo;
            this.name   = name;
        }
        public Monster ShallowClone()                 // поверхностная копия
        {
            return (Monster)this.MemberwiseClone();
        }
        public object Clone()                      // пользовательская копия
        {
            return new Monster(this.health, this.ammo, "Клон " + this.name);
        }
Описание слайда:
class Monster : ICloneable class Monster : ICloneable     {   public Monster( int health, int ammo, string name )         {             this.health = health;             this.ammo   = ammo;             this.name   = name;         }         public Monster ShallowClone()                 // поверхностная копия         {             return (Monster)this.MemberwiseClone();         }         public object Clone()                      // пользовательская копия         {             return new Monster(this.health, this.ammo, "Клон " + this.name);         }

Слайд 25





Домашнее задание

Создайте интерфейс ISwitchable, в котором объявите два метода – включение и выключение. Придумайте и создайте два класса, которые будут реализовывать этот интерфейс.
Описание слайда:
Домашнее задание Создайте интерфейс ISwitchable, в котором объявите два метода – включение и выключение. Придумайте и создайте два класса, которые будут реализовывать этот интерфейс.



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