181.48K
Category: programmingprogramming

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

1.

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

2.

Зачем нужен конструктор?
Предназначен для инициализации объекта,
Вызывается АВТОМАТИЧЕСКИ каждый раз, как
только создается объект класса с помощью
ключевого слова new,
Имя совпадает с именем класса

3.

Конструктор по умолчанию…
Class Auto
{
int power;
string Marka;
Int door;
public Auto()
{
power= 0;
Marka = “VAZ”;
}
}
Модификатор
ТОЛЬКО public
В скобках пусто!
Вызов конструктора по умолчанию
в главной программе будет иметь
вид:
Auto a = new Auto();

4.

Конструктор с параметрами
Class Auto
{

public Auto(int p)
{
this.power= p;
Marka = “VAZ”;
}
}
В скобках указываются
параметры, которые будут
переданы при создании
экземпляра класса.
Вызов конструктора по умолчанию
в главной программе будет иметь
вид:
Auto a = new Auto(10);
Здесь используется ключевое
слово this. Необходимо для
ЯВНОЙ идентификации поля
класса

5.

Конструктор с параметрами
Class Auto
{…
public Auto(int p)
{
this.power= p;
Marka = “VAZ”;
}
В скобках указываются
параметры, которые будут
переданы при создании
экземпляра класса.
Вызов конструктора по умолчанию
в главной программе будет иметь
вид:
Auto a = new Auto(10, str);
public Auto(int p, string k)
{
this.power= p;
this.Marka = k;
}
}
Конструкторы должны отличаться
набором параметров в скобках!!!

6.

Конструктор с параметрами
Class Auto
{
public Auto (int d)
{
this.door = d;
}
public Auto(int p)
{
this.power= p;
}
}
ОШИБКА!!!!
Не смотря на то, что по смыслу эти
конструкторы отличаются, для
компилятора они ОДИНАКОВЫ изза одинакового набора
параметров

7.

Конструктор с параметрами
Class Auto
{…
public Auto(string s,int d)
{
this.door= d;
Marka = s;
}
public Auto(int p, string k)
{
this.power= p;
this.Marka = k;
}
}
А эти конструкторы
отличаются Хотя
параметры одинаковы
(строка + целое число), они
идут в разном порядке,
следовательно, вызов
конструктора будет
отличаться
Auto a=new Auto (s, 100);
Auto n=new Auto (100, s);
English     Русский Rules