Похожие презентации:
Конструкторы. Ключевое слово. Основы программирования
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 позволяет не вводить новые
переменные для обозначения одного и того же, что
позволяет сделать код менее «перегруженным»
дополнительными переменными.