🗊Презентация Классы: основные понятия

Нажмите для полного просмотра!
Классы: основные понятия, слайд №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Классы: основные понятия, слайд №27Классы: основные понятия, слайд №28Классы: основные понятия, слайд №29Классы: основные понятия, слайд №30Классы: основные понятия, слайд №31Классы: основные понятия, слайд №32Классы: основные понятия, слайд №33Классы: основные понятия, слайд №34Классы: основные понятия, слайд №35Классы: основные понятия, слайд №36Классы: основные понятия, слайд №37Классы: основные понятия, слайд №38Классы: основные понятия, слайд №39Классы: основные понятия, слайд №40Классы: основные понятия, слайд №41Классы: основные понятия, слайд №42Классы: основные понятия, слайд №43Классы: основные понятия, слайд №44Классы: основные понятия, слайд №45Классы: основные понятия, слайд №46Классы: основные понятия, слайд №47Классы: основные понятия, слайд №48Классы: основные понятия, слайд №49Классы: основные понятия, слайд №50Классы: основные понятия, слайд №51

Содержание

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

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


Слайд 1





Классы: основные понятия 
Основные элементы класса: поля, методы, конструкторы, свойства. Виды параметров методов.
Описание слайда:
Классы: основные понятия Основные элементы класса: поля, методы, конструкторы, свойства. Виды параметров методов.

Слайд 2





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

Слайд 3





Абстрагирование и инкапсуляция
При представлении реального объекта с помощью программного необходимо выделить в первом его существенные особенности и игнорировать несущественные. Это называется абстрагированием. 
Таким образом, программный объект — это абстракция.
Детали реализации объекта скрыты, он используется через его интерфейс — совокупность правил доступа. 
Скрытие деталей реализации называется инкапсуляцией. Это позволяет представить программу в укрупненном виде — на уровне объектов и их взаимосвязей, а следовательно, управлять большим объемом информации.
Итак, объект — это инкапсулированная абстракция с четко определенным интерфейсом.
Описание слайда:
Абстрагирование и инкапсуляция При представлении реального объекта с помощью программного необходимо выделить в первом его существенные особенности и игнорировать несущественные. Это называется абстрагированием. Таким образом, программный объект — это абстракция. Детали реализации объекта скрыты, он используется через его интерфейс — совокупность правил доступа. Скрытие деталей реализации называется инкапсуляцией. Это позволяет представить программу в укрупненном виде — на уровне объектов и их взаимосвязей, а следовательно, управлять большим объемом информации. Итак, объект — это инкапсулированная абстракция с четко определенным интерфейсом.

Слайд 4





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

Слайд 5





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

Слайд 6





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

Слайд 7





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

Слайд 8





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

Слайд 9





Понятие класса
Класс является типом данных, определяемым пользователем. Он должен представлять собой одну логическую сущность, например, являться моделью реального объекта или процесса. Элементами класса являются данные и функции, предназначенные для их обработки.
Все классы .NET имеют общего предка — класс object, и организованы в единую иерархическую структуру. 
Внутри нее классы логически сгруппированы в пространства имен, которые служат для упорядочивания имен классов и предотвращения конфликтов имен: в разных пространствах имена могут совпадать. Пространства имен могут быть вложенными.
Любая программа использует пространство имен System.
Описание слайда:
Понятие класса Класс является типом данных, определяемым пользователем. Он должен представлять собой одну логическую сущность, например, являться моделью реального объекта или процесса. Элементами класса являются данные и функции, предназначенные для их обработки. Все классы .NET имеют общего предка — класс object, и организованы в единую иерархическую структуру. Внутри нее классы логически сгруппированы в пространства имен, которые служат для упорядочивания имен классов и предотвращения конфликтов имен: в разных пространствах имена могут совпадать. Пространства имен могут быть вложенными. Любая программа использует пространство имен System.

Слайд 10





Описание класса 
[ атрибуты ] [ спецификаторы ] class имя_класса [ : предки ]   тело_класса
Имя класса задается по общим правилам. 
Тело класса — список описаний его элементов, заключенный в фигурные скобки.
Атрибуты задают дополнительную информацию о классе. 
Спецификаторы определяют свойства класса, а также доступность класса для других элементов программы. 
Простейший пример описания класса: 
	class Demo {}         // пустой класс
Описание слайда:
Описание класса [ атрибуты ] [ спецификаторы ] class имя_класса [ : предки ] тело_класса Имя класса задается по общим правилам. Тело класса — список описаний его элементов, заключенный в фигурные скобки. Атрибуты задают дополнительную информацию о классе. Спецификаторы определяют свойства класса, а также доступность класса для других элементов программы. Простейший пример описания класса: class Demo {} // пустой класс

Слайд 11





Сквозной пример класса
class Monster {
    public Monster()      // конструктор
    {
            this.name  = "Noname";
            this.health = 100;
            this.ammo = 100;
    }
  public Monster( string name ) : this()
    {
            this.name = name;
     }
  public Monster( int health, int ammo, string name )
     {
            this.name  = name;
            this.health = health;
            this.ammo = ammo;
     }
  public int GetName()          // метод
    {  return name;   }
  public int GetAmmo()        // метод
     {  return ammo;}
Описание слайда:
Сквозной пример класса class Monster { public Monster() // конструктор { this.name = "Noname"; this.health = 100; this.ammo = 100; } public Monster( string name ) : this() { this.name = name; } public Monster( int health, int ammo, string name ) { this.name = name; this.health = health; this.ammo = ammo; } public int GetName() // метод { return name; } public int GetAmmo() // метод { return ammo;}

Слайд 12





Спецификаторы класса
Описание слайда:
Спецификаторы класса

Слайд 13





Элементы класса
Описание слайда:
Элементы класса

Слайд 14





Описание объекта (экземпляра)
Класс является обобщенным понятием, определяющим характеристики и поведение множества конкретных объектов этого класса, называемых экземплярами (объектами) класса.
Объекты создаются явным или неявным образом (либо программистом, либо системой). Программист создает экземпляр класса с помощью операции new:
Demo a = new Demo(); 
Demo b = new Demo(); 
Для каждого объекта при его создании в памяти выделяется отдельная область для хранения его данных. 
Кроме того, в классе могут присутствовать статические элементы, которые существуют в единственном экземпляре для всех объектов класса. 
Функциональные элементы класса всегда хранятся в единственном экземпляре.
Описание слайда:
Описание объекта (экземпляра) Класс является обобщенным понятием, определяющим характеристики и поведение множества конкретных объектов этого класса, называемых экземплярами (объектами) класса. Объекты создаются явным или неявным образом (либо программистом, либо системой). Программист создает экземпляр класса с помощью операции new: Demo a = new Demo(); Demo b = new Demo(); Для каждого объекта при его создании в памяти выделяется отдельная область для хранения его данных. Кроме того, в классе могут присутствовать статические элементы, которые существуют в единственном экземпляре для всех объектов класса. Функциональные элементы класса всегда хранятся в единственном экземпляре.

Слайд 15





Пример создания объектов (экземпляров)
class Monster { ... }
 class Class1
{
        static void Main()
        {
            Monster X = new Monster();
            X.Passport();
            Monster Vasia = new Monster( "Vasia" );
            Vasia.Passport();
            Monster Masha = new Monster( 200, 200, "Masha" );
            Сonsole.Writeline(Masha);
        }
    }
Описание слайда:
Пример создания объектов (экземпляров) class Monster { ... } class Class1 { static void Main() { Monster X = new Monster(); X.Passport(); Monster Vasia = new Monster( "Vasia" ); Vasia.Passport(); Monster Masha = new Monster( 200, 200, "Masha" ); Сonsole.Writeline(Masha); } }

Слайд 16





Присваивание и сравнение объектов 
b = c 
Величины ссылочного типа равны, если они ссылаются на одни и те же данные (b == c, но a != b даже при равенстве их значений или если обе ссылки равны null).
Описание слайда:
Присваивание и сравнение объектов b = c Величины ссылочного типа равны, если они ссылаются на одни и те же данные (b == c, но a != b даже при равенстве их значений или если обе ссылки равны null).

Слайд 17





Данные: поля и константы 
Данные, содержащиеся в классе, могут быть переменными или константами. 
Переменные, описанные в классе, называются полями класса.
При описании полей можно указывать атрибуты и спецификаторы, задающие различные характеристики элементов:
[ атрибуты ] [ спецификаторы ] [ const ] тип имя 
		[ = начальное_значение ]
Все поля сначала автоматически инициализируются нулем соответствующего типа (например, полям типа int присваивается 0, а ссылкам на объекты — значение null). После этого полю присваивается значение, заданное при его явной инициализации.
Описание слайда:
Данные: поля и константы Данные, содержащиеся в классе, могут быть переменными или константами. Переменные, описанные в классе, называются полями класса. При описании полей можно указывать атрибуты и спецификаторы, задающие различные характеристики элементов: [ атрибуты ] [ спецификаторы ] [ const ] тип имя [ = начальное_значение ] Все поля сначала автоматически инициализируются нулем соответствующего типа (например, полям типа int присваивается 0, а ссылкам на объекты — значение null). После этого полю присваивается значение, заданное при его явной инициализации.

Слайд 18





Пример класса
using System;
namespace CA1
{    class Demo
    {  public int a = 1;                        // поле данных
        public const double  c = 1.66;    // константа
        public static string s = "Demo";  // статическое поле класса
        double y;                                // закрытое поле данных
    }
    class Class1
    {   static void Main()
        {
            Demo x = new Demo();       // создание экземпляра класса Demo
            Console.WriteLine( x.a );        // x.a - обращение к полю класса
            Console.WriteLine( Demo.c );  // Demo.c - обращение к константе
            Console.WriteLine( Demo.s );  // обращение к статическому полю
   }}}
Описание слайда:
Пример класса using System; namespace CA1 { class Demo { public int a = 1; // поле данных public const double c = 1.66; // константа public static string s = "Demo"; // статическое поле класса double y; // закрытое поле данных } class Class1 { static void Main() { Demo x = new Demo(); // создание экземпляра класса Demo Console.WriteLine( x.a ); // x.a - обращение к полю класса Console.WriteLine( Demo.c ); // Demo.c - обращение к константе Console.WriteLine( Demo.s ); // обращение к статическому полю }}}

Слайд 19





Спецификаторы полей и констант класса
Описание слайда:
Спецификаторы полей и констант класса

Слайд 20





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

Слайд 21





Синтаксис метода
[ атрибуты ] [ спецификаторы ] тип имя_метода ( [ параметры ] )  тело_метода
Спецификаторы: new, public, protected, internal, protected internal, private, static, virtual, sealed, override, abstract, extern. 
Метод класса имеет непосредственный доступ к его полям.
Пример:
class Demo {
    double y;                                   // закрытое поле класса
    
    public void Sety( double z ) {     // открытый метод класса
        y = z; 
    }
}
… Demo x = new Demo();           // где-то в методе другого класса
   x.Sety(3.12); …                       // вызов метода
Описание слайда:
Синтаксис метода [ атрибуты ] [ спецификаторы ] тип имя_метода ( [ параметры ] ) тело_метода Спецификаторы: new, public, protected, internal, protected internal, private, static, virtual, sealed, override, abstract, extern. Метод класса имеет непосредственный доступ к его полям. Пример: class Demo { double y; // закрытое поле класса public void Sety( double z ) { // открытый метод класса y = z; } } … Demo x = new Demo(); // где-то в методе другого класса x.Sety(3.12); … // вызов метода

Слайд 22





Примеры методов
public void Sety(double z) {
    y = z; 
}
public double Gety() { 
   return y; 
}
Описание слайда:
Примеры методов public void Sety(double z) { y = z; } public double Gety() { return y; }

Слайд 23





Параметры методов
Параметры определяют множество значений аргументов, которые можно передавать в метод. 
Список аргументов при вызове как бы накладывается на список параметров, поэтому они должны попарно соответствовать друг другу. 
Для каждого параметра должны задаваться его тип, имя и, возможно, вид параметра. 
Имя метода вкупе с количеством, типами и спецификаторами его параметров представляет собой сигнатуру метода — то, по чему один метод отличают от других. 
В классе не должно быть методов с одинаковыми сигнатурами.
Метод, описанный со спецификатором static, должен обращаться только к статическим полям класса. 
Статический метод вызывается через имя класса, а обычный — через имя экземпляра.
Описание слайда:
Параметры методов Параметры определяют множество значений аргументов, которые можно передавать в метод. Список аргументов при вызове как бы накладывается на список параметров, поэтому они должны попарно соответствовать друг другу. Для каждого параметра должны задаваться его тип, имя и, возможно, вид параметра. Имя метода вкупе с количеством, типами и спецификаторами его параметров представляет собой сигнатуру метода — то, по чему один метод отличают от других. В классе не должно быть методов с одинаковыми сигнатурами. Метод, описанный со спецификатором static, должен обращаться только к статическим полям класса. Статический метод вызывается через имя класса, а обычный — через имя экземпляра.

Слайд 24





Пример
class Demo    {
        public int a = 1;
        public const double c = 1.66;
        static string s = "Demo";
        double y;
        public double Gety() { return y;  }             // метод получения y
        public void Sety( double y_ ){  y = y_; }    // метод установки y
        public static string Gets() { return s; }       // метод получения s
}
class Class1 {
       static void Main()
        {  Demo x = new Demo();
            x.Sety(0.12);                               // вызов метода установки y
            Console.WriteLine(x.Gety());         // вызов метода получения y
            Console.WriteLine(Demo.Gets());  // вызов метода получения s
//          Console.WriteLine(Gets());           // вариант вызова из того же
}}                                                          // класса
Описание слайда:
Пример class Demo { public int a = 1; public const double c = 1.66; static string s = "Demo"; double y; public double Gety() { return y; } // метод получения y public void Sety( double y_ ){ y = y_; } // метод установки y public static string Gets() { return s; } // метод получения s } class Class1 { static void Main() { Demo x = new Demo(); x.Sety(0.12); // вызов метода установки y Console.WriteLine(x.Gety()); // вызов метода получения y Console.WriteLine(Demo.Gets()); // вызов метода получения s // Console.WriteLine(Gets()); // вариант вызова из того же }} // класса

Слайд 25





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

Слайд 26





Пример передачи параметров
class Class1
    {   static int Max(int a, int b)       // выбор макс. значения
        {
            if ( a > b ) return a;
            else          return b;
        }
        static void Main()
        {
            int a = 2, b = 4;
            int x = Max( a, b );        // вызов метода Max
            Console.WriteLine( x );                 // результат: 4
            short t1 = 3, t2 = 4;
            int y = Max( t1, t2 );      // пар-ры совместимого типа
            Console.WriteLine( y );                 // результат: 4
            int z = Max( a + t1, t1 / 2 * b );   // выражения
            Console.WriteLine( z );                 // результат: 5
}}
Описание слайда:
Пример передачи параметров class Class1 { static int Max(int a, int b) // выбор макс. значения { if ( a > b ) return a; else return b; } static void Main() { int a = 2, b = 4; int x = Max( a, b ); // вызов метода Max Console.WriteLine( x ); // результат: 4 short t1 = 3, t2 = 4; int y = Max( t1, t2 ); // пар-ры совместимого типа Console.WriteLine( y ); // результат: 4 int z = Max( a + t1, t1 / 2 * b ); // выражения Console.WriteLine( z ); // результат: 5 }}

Слайд 27





Способы передачи параметров и их типы
Способы передачи параметров: по значению и по ссылке.
При передаче по значению метод получает копии значений аргументов, и операторы метода работают с этими копиями. 
При передаче по ссылке (по адресу) метод получает копии адресов аргументов и осуществляет доступ к аргументам по этим адресам.
В С# четыре типа параметров:
параметры-значения;
параметры-ссылки (ref);
выходные параметры (out);
параметры-массивы (params).
Ключевое слово предшествует описанию типа параметра. Если оно опущено, параметр считается параметром-значением. Пример:
public int Calculate( int a, ref int b, out int c, params int[] d ) …
Описание слайда:
Способы передачи параметров и их типы Способы передачи параметров: по значению и по ссылке. При передаче по значению метод получает копии значений аргументов, и операторы метода работают с этими копиями. При передаче по ссылке (по адресу) метод получает копии адресов аргументов и осуществляет доступ к аргументам по этим адресам. В С# четыре типа параметров: параметры-значения; параметры-ссылки (ref); выходные параметры (out); параметры-массивы (params). Ключевое слово предшествует описанию типа параметра. Если оно опущено, параметр считается параметром-значением. Пример: public int Calculate( int a, ref int b, out int c, params int[] d ) …

Слайд 28





Пример: параметры-значения и ссылки ref
using System;
namespace ConsoleApplication1
{   class Class1
    {   static void P( int a, ref int b )
        {
            a = 44; b = 33;
            Console.WriteLine( "внутри метода {0} {1}", a, b );
        }
        static void Main()
        {
            int a = 2, b = 4;
            Console.WriteLine( "до вызова     {0} {1}", a, b );
            P( a, ref b );
            Console.WriteLine( "после вызова  {0} {1}", a, b );
}}}
Описание слайда:
Пример: параметры-значения и ссылки ref using System; namespace ConsoleApplication1 { class Class1 { static void P( int a, ref int b ) { a = 44; b = 33; Console.WriteLine( "внутри метода {0} {1}", a, b ); } static void Main() { int a = 2, b = 4; Console.WriteLine( "до вызова {0} {1}", a, b ); P( a, ref b ); Console.WriteLine( "после вызова {0} {1}", a, b ); }}}

Слайд 29





Пример: выходные параметры out
using System;
namespace ConsoleApplication1
{   class Class1
    {   static void P( int x, out int y ) 
        {
            x = 44; y = 33;
            Console.WriteLine( "внутри метода {0} {1}", x, y );
        }
        static void Main()
        {
            int a = 2, b;         // инициализация b не требуется
            P( a, out b );
            Console.WriteLine( "после вызова  {0} {1}", a, b );
}}}
Описание слайда:
Пример: выходные параметры out using System; namespace ConsoleApplication1 { class Class1 { static void P( int x, out int y ) { x = 44; y = 33; Console.WriteLine( "внутри метода {0} {1}", x, y ); } static void Main() { int a = 2, b; // инициализация b не требуется P( a, out b ); Console.WriteLine( "после вызова {0} {1}", a, b ); }}}

Слайд 30





Правила применения параметров
Для параметров-значений используется передача по значению. Этот способ применяется для исходных данных метода.
При вызове метода на месте параметра, передаваемого по значению, может находиться выражение (а также его частные случаи — переменная или константа). Должно существовать неявное преобразование типа выражения к типу параметра.
Параметры-ссылки и выходные параметры передаются по адресу. Этот способ применяется для передачи побочных результатов метода.
При вызове метода на месте параметра-ссылки ref может находиться только имя инициализированной переменной точно того же типа. Перед именем параметра указывается ключевое слово ref. 
При вызове метода на месте выходного параметра out может находиться только имя переменной точно того же типа. Ее инициализация не требуется. Перед именем параметра указывается ключевое слово out.
Описание слайда:
Правила применения параметров Для параметров-значений используется передача по значению. Этот способ применяется для исходных данных метода. При вызове метода на месте параметра, передаваемого по значению, может находиться выражение (а также его частные случаи — переменная или константа). Должно существовать неявное преобразование типа выражения к типу параметра. Параметры-ссылки и выходные параметры передаются по адресу. Этот способ применяется для передачи побочных результатов метода. При вызове метода на месте параметра-ссылки ref может находиться только имя инициализированной переменной точно того же типа. Перед именем параметра указывается ключевое слово ref. При вызове метода на месте выходного параметра out может находиться только имя переменной точно того же типа. Ее инициализация не требуется. Перед именем параметра указывается ключевое слово out.

Слайд 31





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

Слайд 32





Использование явного this
В явном виде параметр this применяется: 
// чтобы возвратить из метода ссылку на вызвавший объект:
class Demo    
{        double y;
        public Demo T()    { return this; }
// для идентификации поля, если его имя совпадает с именем
// параметра метода:
        public void Sety( double y ) { this.y = y; }
}
Описание слайда:
Использование явного this В явном виде параметр this применяется: // чтобы возвратить из метода ссылку на вызвавший объект: class Demo { double y; public Demo T() { return this; } // для идентификации поля, если его имя совпадает с именем // параметра метода: public void Sety( double y ) { this.y = y; } }

Слайд 33





Конструкторы
Конструктор предназначен для инициализации объекта. Он вызывается автоматически при создании объекта класса с помощью операции new. Имя конструктора совпадает с именем класса. 
Свойства конструкторов:
Конструктор не возвращает значение, даже типа void.
Класс может иметь несколько конструкторов с разными параметрами для разных видов инициализации.
Если программист не указал ни одного конструктора или какие-то поля не были инициализированы, полям значимых типов присваивается нуль, полям ссылочных типов — значение null.
Конструктор, вызываемый без параметров, называется конструктором по умолчанию.
Описание слайда:
Конструкторы Конструктор предназначен для инициализации объекта. Он вызывается автоматически при создании объекта класса с помощью операции new. Имя конструктора совпадает с именем класса. Свойства конструкторов: Конструктор не возвращает значение, даже типа void. Класс может иметь несколько конструкторов с разными параметрами для разных видов инициализации. Если программист не указал ни одного конструктора или какие-то поля не были инициализированы, полям значимых типов присваивается нуль, полям ссылочных типов — значение null. Конструктор, вызываемый без параметров, называется конструктором по умолчанию.

Слайд 34





Пример класса с конструктором
class Demo
    {
        public Demo( int a, double y )         // конструктор
        {
            this.a = a;
            this.y = y;
        }
        int a;   
        double y;
    }
    
    class Class1
    {   static void Main()
        {
            Demo a = new Demo( 300, 0.002 );     // вызов конструктора
            Demo b = new Demo( 1, 5.71 );          // вызов конструктора
            …
     } }
Описание слайда:
Пример класса с конструктором class Demo { public Demo( int a, double y ) // конструктор { this.a = a; this.y = y; } int a; double y; } class Class1 { static void Main() { Demo a = new Demo( 300, 0.002 ); // вызов конструктора Demo b = new Demo( 1, 5.71 ); // вызов конструктора … } }

Слайд 35





Пример класса с двумя конструкторами
class Demo
    {
        public Demo( int a )                   // конструктор 1
        {
            this.a = a;
            this.y = 0.002;
        }
        public Demo( double y )                // конструктор 2
        {
            this.a = 1;
            this.y = y;
        }
        ...
    }
        ...
            Demo x = new Demo( 300 );            // вызов конструктора 1
            Demo y = new Demo( 5.71 );           // вызов конструктора 2
Описание слайда:
Пример класса с двумя конструкторами class Demo { public Demo( int a ) // конструктор 1 { this.a = a; this.y = 0.002; } public Demo( double y ) // конструктор 2 { this.a = 1; this.y = y; } ... } ... Demo x = new Demo( 300 ); // вызов конструктора 1 Demo y = new Demo( 5.71 ); // вызов конструктора 2

Слайд 36





Сквозной пример класса
class Monster {
    public Monster()      // конструктор
    {
            this.name  = "Noname";
            this.health = 100;
            this.ammo = 100;
    }
  public Monster( string name ) : this()
    {
            this.name = name;
     }
  public Monster( int health, int ammo, string name )
     {
            this.name  = name;
            this.health = health;
            this.ammo = ammo;
     }
  public int GetName()          // метод
    {  return name;   }
  public int GetAmmo()        // метод
     {  return ammo;}
Описание слайда:
Сквозной пример класса class Monster { public Monster() // конструктор { this.name = "Noname"; this.health = 100; this.ammo = 100; } public Monster( string name ) : this() { this.name = name; } public Monster( int health, int ammo, string name ) { this.name = name; this.health = health; this.ammo = ammo; } public int GetName() // метод { return name; } public int GetAmmo() // метод { return ammo;}

Слайд 37





Свойства
Свойства служат для организации доступа к полям класса. Как правило, свойство определяет методы доступа к закрытому полю. 
Синтаксис свойства:
[ спецификаторы ] тип имя_свойства
{
    [ get код_доступа ]
    [ set код_доступа ]
}
При обращении к свойству автоматически вызываются указанные в нем блоки чтения (get) и установки (set).
Может отсутствовать либо часть get, либо set, но не обе одновременно. Если отсутствует часть set, свойство доступно только для чтения (read-only), если отсутствует get - только для записи (write-only).
Описание слайда:
Свойства Свойства служат для организации доступа к полям класса. Как правило, свойство определяет методы доступа к закрытому полю. Синтаксис свойства: [ спецификаторы ] тип имя_свойства { [ get код_доступа ] [ set код_доступа ] } При обращении к свойству автоматически вызываются указанные в нем блоки чтения (get) и установки (set). Может отсутствовать либо часть get, либо set, но не обе одновременно. Если отсутствует часть set, свойство доступно только для чтения (read-only), если отсутствует get - только для записи (write-only).

Слайд 38





Пример описания свойств 
public class Button: Control  
{  private string caption;     // поле, с которым связано свойство 
    public string Caption {     // свойство
       get { return caption; }  // способ получения свойства
       set                             // способ установки свойства
           { if (caption != value) { caption = value; }
 }}    ...
Описание слайда:
Пример описания свойств public class Button: Control { private string caption; // поле, с которым связано свойство public string Caption { // свойство get { return caption; } // способ получения свойства set // способ установки свойства { if (caption != value) { caption = value; } }} ...

Слайд 39





Сквозной пример класса
class Monster {
    public Monster()      // конструктор
    {
            this.name  = "Noname";
            this.health = 100;
            this.ammo = 100;
    }
  public Monster( string name ) : this()
    {
            this.name = name;
     }
  public Monster( int health, int ammo, string name )
     {
            this.name  = name;
            this.health = health;
            this.ammo = ammo;
     }
  public int GetName()          // метод
    {  return name;   }
  public int GetAmmo()        // метод
     {  return ammo;}
Описание слайда:
Сквозной пример класса class Monster { public Monster() // конструктор { this.name = "Noname"; this.health = 100; this.ammo = 100; } public Monster( string name ) : this() { this.name = name; } public Monster( int health, int ammo, string name ) { this.name = name; this.health = health; this.ammo = ammo; } public int GetName() // метод { return name; } public int GetAmmo() // метод { return ammo;}

Слайд 40


Классы: основные понятия, слайд №40
Описание слайда:

Слайд 41





Рекурсивные методы
Описание слайда:
Рекурсивные методы

Слайд 42





Характеристики рекурсии
Описание слайда:
Характеристики рекурсии

Слайд 43





Перегрузка методов
Описание слайда:
Перегрузка методов

Слайд 44





Операции класса
Описание слайда:
Операции класса

Слайд 45





Общие правила описания операций класса
Описание слайда:
Общие правила описания операций класса

Слайд 46





Унарные операции
Описание слайда:
Унарные операции

Слайд 47





Пример унарной операции класса
Описание слайда:
Пример унарной операции класса

Слайд 48





Бинарные операции
Описание слайда:
Бинарные операции

Слайд 49





Пример бинарных операций класса
Описание слайда:
Пример бинарных операций класса

Слайд 50





Операции преобразования типа
Описание слайда:
Операции преобразования типа

Слайд 51





Применение операций преобразования
Описание слайда:
Применение операций преобразования



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