736.76K
Category: programmingprogramming

Конструкторы. Ключевое слово. Основы программирования

1.

Конструкторы
Ключевое слово
Основы программирования
Компьютерная академия ШАГ, Минск

2.

ТЕОРЕТИЧЕСКАЯ
ЧАСТЬ

3.

Конструкторы в
Конструктор – это специальный метод, который вызывается при создании нового
объекта. По сути конструктор нужен для автоматической инициализации переменных.
конструктор
class Box {
int width; // ширина коробки
int height;//высота коробки
int depth; //глубина коробки
}
Box myBox = new Box();
Особенности:
o Конструкторы вызываются только один раз при создании объекта в памяти.
o Они должны называться так же, как называется класс.
o Они ничего не возвращают, не нужно даже писать слово void в сигнатуре этого
метода.
o У класса может быть несколько конструкторов.
o Если вы не написали ни одного конструктора, во время компиляции Java
автоматически создаст за вас так называемый Пустой конструктор по умолчанию

4.

Конструкторы в
Если вы создали сами конструктор, то конструктор по умолчанию использоваться
не будет.
class Box {
int width; // ширина коробки
int height;// высота коробки
int depth; // глубина коробки
Box myBox= new Box();
int v = myBox.getVolume();
System.out.print("Объѐм коробки: " + v);
//Конструктор
Box() {
width = 10;
height = 10;
depth = 10;
}
// вычисляем объѐм коробки
int getVolume() {
return width * height * depth;
}
}
Результат: Объём коробки: 1000

5.

Конструкторы в
Если класс содержит один конструктор с параметрами, то вам придѐтся обязательно
указать значения при объявлении класса:
class Box {
int width; // ширина коробки
int height;// высота коробки
int depth; // глубина коробки
/* //Конструктор
Box() {
width = 10;
height = 10;
depth = 10;
}*/
Box myBox= new Box(10,10,10);
int v = myBox.getVolume();
System.out.print("Объѐм коробки: " + v);
// второй конструктор
Box(int w, int h, int d) {
width = w;
height = h;
depth = d;}
// вычисляем объѐм коробки
int getVolume() {
return width * height * depth;
}
}
Результат: Объём коробки: 1000

6.

Конструкторы в
Класс может иметь несколько конструкторов.
class Box {
int width; // ширина коробки
int height;// высота коробки
int depth; // глубина коробки
//первый конструктор
Box() {
width = 10;
height = 10;
depth = 10;
}
// второй конструктор
Box(int w, int h, int d) {
width = w;
height = h;
depth = d;}
// вычисляем объѐм коробки
int getVolume() {
return width * height * depth;
}
}
Box myBox1= new Box();
int v = myBox1.getVolume();
System.out.print("Объѐм коробки1: " + v);
Box myBox2= new Box(5, 5, 5);
int v2 = myBox2.getVolume();
System.out.print("Объѐм коробки2: " + v2);
Результат: Объём коробки1: 1000
Объём коробки2: 125

7.

Конструкторы в
class Box {
int width; // ширина коробки
int height;// высота коробки
int depth; // глубина коробки
//конструктор
Box() {
width = 10;
height = 10;
depth = 10;
}
// второй конструктор
Box(int w, int h, int d) {
width = w;
height = h;
depth = d;}
Box myBox1= new Box();
int v = myBox1.getVolume();
System.out.print("Объѐм коробки1: " + v);
Box myBox2= new Box(5, 5, 5);
int v2 = myBox2.getVolume();
System.out.print("Объѐм коробки2: " + v2);
Box myBox3= new Box(3);
int v3 = myBox3.getVolume();
System.out.print("Объѐм коробки3: " + v3);
//третий конструктор для куба
Box(int len) {
width = height = depth = len;
}
// вычисляем объѐм коробки
int getVolume() {
return width * height * depth;
}
}
Результат: Объём коробки1: 1000
Объём коробки2: 125
Объём коробки3: 27

8.

Ключевое слово
Ключевое слово this полезно, когда нужно сослаться на экземпляр класса внутри объекта
этого класса, удобно один конструктор вызывать из другого:
class Box {
int width; // ширина коробки
int height;// высота коробки
int depth; // глубина коробки
//конструктор
Box() {
width = 10;
height = 10;
depth = 10;
Используя this
class Box {
int width; // ширина коробки
int height;// высота коробки
int depth; // глубина коробки
//значения по умолчанию 10
Box() {
this(10);//вызывается Box(len)
height = 10;
depth = 10;
}
}
//инициализируем переменные явно
Box(int w, int h, int d) {
width = w;
height = h;
depth = d;}
// второй конструктор
Box(int w, int h, int d) {
width = w;
height = h;
depth = d;}
//третий конструктор для куба
Box(int len) {
width = height = depth = len;
}}
//одним и тем же значением
Box(int len) {
this(0);// вызывается Box()
}}
Использование перегруженных конструкторов через
конструктор this() позволяет исключить дублирование кода,
уменьшая время загрузки классов.

9.

Ключевое слово
Ключевое слово this полезно, когда у переменной экземпляра класса и переменной
метода/конструктора одинаковые имена:
class Box {
int width; // ширина коробки
int height;// высота коробки
int depth; // глубина коробки
//конструктор
Box() {
width = 10;
height = 10;
depth = 10;
//конструктор
Box() {
width = 10;
height = 10;
depth = 10;
}
// второй конструктор
Box(int w, int h, int d) {
width = w;
height = h;
depth = d;}
//третий конструктор для куба
Box(int len) {
width = height = depth = len;
}}
Используя
class Box {
int width; // ширина коробки
int height;// высота коробки
int depth; // глубина коробки
this
}
// второй конструктор
Box(int w, int h, int d) {
this.width = width;
this.height = height;
this.depth = depth ;}
//третий конструктор для куба
Box(int len) {
width = height = depth = len;
Таким образом, здесь this позволяет не вводить новые
переменные для обозначения одного и того же, что
позволяет сделать код менее «перегруженным»
дополнительными переменными.

10.

СПАСИБО ЗА ВНИМАНИЕ
English     Русский Rules