Основы С# Лекция 5. 4 Классы. Конструкторы и

Скачать презентацию Основы С# Лекция 5. 4 Классы. Конструкторы и Скачать презентацию Основы С# Лекция 5. 4 Классы. Конструкторы и

s#_5.4_lekciya.pptx

  • Размер: 996.3 Кб
  • Автор:
  • Количество слайдов: 16

Описание презентации Основы С# Лекция 5. 4 Классы. Конструкторы и по слайдам

Основы С# Лекция 5. 4 Классы. Конструкторы и Деструкторы Основы С# Лекция 5. 4 Классы. Конструкторы и Деструкторы

ПАРАМЕТРИЧЕСКИЙ КОНСТРУКТОР И КОНСТРУКТОР УМОЛЧАНИЯ ПАРАМЕТРИЧЕСКИЙ КОНСТРУКТОР И КОНСТРУКТОР УМОЛЧАНИЯ

Параметрический конструктор class  My. Class {   public  string Name; Параметрический конструктор class My. Class { public string Name; public int Age; public My. Class( string n, int a) // параметрический конструктор { Name = n; Age = a; } public void write() { Console. Write. Line( «Имя: {0}\n. Возраст: {1}» , Name, Age); } } class Program { static void Main( string [] args) { My. Class who = new My. Class ( «Брайан Уилсон Керниган» , 74); who. write(); Console. Read. Line(); } }

Ключевое слово this Указатель this - это указатель на объект,  для которого былКлючевое слово this Указатель this — это указатель на объект, для которого был вызван нестатический метод. Ключевое словоthisобеспечивает доступ к текущему экземпляру класса.

Ключевое слово this Варианты применения: 1.  Для избегания конфликта имен между параметрами методаКлючевое слово this Варианты применения: 1. Для избегания конфликта имен между параметрами метода и членами объекта (при неоднозначность контекста). 2. Для организации связей между объектами одного класса. 3. Для обращения из одного конструктора класса к другому конструктору того же класса. 4. Для определения расширяющего метода

Ключевое слово this  class  My. Class {   public  charКлючевое слово this class My. Class { public char ch; public void Method 1( char ch) { ch = ch; } public void Method 2( char ch) { this. ch = ch; } } class Program { static void Main() { char my. CH = ‘A’ ; Console. Write. Line( «Исходный символ {0}» , my. CH); My. Class obj = new My. Class (); obj. Method 1(my. CH); Console. Write. Line( «Использование метода без ключевого слова this: {0}» , obj. ch); obj. Method 2(my. CH); Console. Write. Line( «Использование метода c ключевым словом this: {0}» , obj. ch); Console. Read. Line(); } }

Параметрические конструкторы class  Car {   private  double mileage;  privateПараметрические конструкторы class Car { private double mileage; private double fuel; public Car() { mileage = 0; fuel = 0; } public Car( double mileage, double fuel) { this. mileage = mileage; this. fuel = fuel; } } class Program { static void Main( string [] args) { Car new. Car = new Car (); // создаем автомобиль с параметрами по умолчанию, 0 и 0 Car new. Car 2 = new Car (100, 50); // создаем автомобиль с указанными параметрами Console. Read. Line(); } }

Параметрические конструкторы class  Car {   private  double mileage;  privateПараметрические конструкторы class Car { private double mileage; private double fuel; public Car( double mileage, double fuel) { this. mileage = mileage; this. fuel = fuel; } } class Program { static void Main( string [] args) { Car new. Car = new Car (100, 50); Car new. Car 2 = new Car (); // ошибка, в классе не определен конструктор без параметров } }

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

КОНСТРУКТОР КОПИРОВАНИЯ КОНСТРУКТОР КОПИРОВАНИЯ

Конструктор копирования  class  CL   {   public  intКонструктор копирования class CL { public int dom = 6; public CL() { } // Конструктор умолчания public CL( CL ob) { // Конструктор копирования dom = ob. dom; } class Program { static void Main() { CL one = new CL (); CL two = new CL (one); two. dom = 5*one. dom; Console. Write. Line( «one. dom=» +one. dom+ «, two. dom=» +two. dom); Console. Read. Line(); } }

КОНСТРУКТОР ПРИВЕДЕНИЯ ТИПОВ КОНСТРУКТОР ПРИВЕДЕНИЯ ТИПОВ

Конструкторы Конструкторы

Конструкторs class  Program   {   static  void Main() Конструкторs class Program { static void Main() { Real number. True = new Real (903. 0, 1); // Конструктор общего вида number. True. display( «number. True» ); Real number. Type = new Real (0. 000321); // Конструктор приведения типов number. Type. display( «number. Type» ); Real number. Copy = new Real (number. True); // Конструктор копирования number. Type = number. True; // Присваивание ссылок number. True. increment. M(); // Изменение объекта number. True. display( «number. True» ); number. Type. display( «number. Type» ); number. Copy. display( «number. Copy» ); // Копия сохранила значение Real number. Default = new Real (); // Конструктор умолчания number. Default. display( «number. Default» ); Console. Read. Line(); } }

ДЕСТРУКТОР ДЕСТРУКТОР

Деструкторы class  Test   {     ~Test()  Деструкторы class Test { ~Test() { Console. Write. Line( «Destructor!» ); Console. Read. Line(); } class Program { static void Main() { Test b = new Test (); b = null ; }