Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Итоги выполнения лабораторной работы

В ходе выполнения Лабораторной работы №2 мы научились: писать ссылки на переменные, создавать экземпляры класса и пр.

ЛАБОРАТОРНАЯ РАБОТА №3. НАСЛЕДОВАНИЕ В JAVA

Цель лабораторной работы

Цель данной лабораторной работы - изучить понятие наследования, и научиться реализовывать наследование в Java.

Теоретические сведения

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

Задание

Создать абстрактный класс, описывающий посуду(Dish). С помощью наследования реализовать различные виды посуды, имеющие свои свойства и методы. Протестировать работу классов.

Ход выполнения

Для начала, создадим класс с названием Dish, который будет являться родительским и от которого мы будем наследоваться в дальнейшем. Кодпредставленниже:

Dish.java

public class Dish {
protected String material;
protected String color;

public String getMaterial() {
   return material;
}

public void setMaterial(String material) {
this.material = material;
}

public String getColor() {
   return color;
}

public void setColor(String color) {
   color = color;
}

public Dish(String material, String color) {
this.material = material;
this.color = color;
}

@Override
public String toString() {
   return "Посуда{" +
           "Материал " + material + '\'' +
           ", Цвет" + color + '\'' +
           '}';
}
}

Теперь давайте разберем его подробнее:

publicclassDish { // создаем класс Dish с уровнем доступа public

protected String material; // создаемпеременную «material» типа String с уровнем доступа protected.

protectedStringcolor; // создаемпеременную «color» типаStringсуровнемдоступаprotected.

Далее идут так называемые «сеттеры» и «геттеры» для объявленных переменных. Геттеры и сеттеры — это методы, позволяющие изменять/получать значение полей класса из других объектов. Т.е. что бы напрямую не обращаться к полю, (не делая его public) используются геттеры и сеттеры и тем самым соблюдая принцип инкапсуляции, один из основополагающих принципов ООП.

Создать геттеры и сеттеры можно автоматически, для этого нужно нажать сочетание клавиш Alt+Insert и в появившемся окне выбираем GetterandSetter

Рис. 15

 

В следующем окне выделяем наши переменные «material» и «color» и нажимаем ОК. И всё, наши геттеры и сеттеры созданы.

Рис. 16

 

Код:

public String getMaterial() { //Геттер для переменной «material»

return material;

}

 

public void setMaterial(String material) { //Cеттер для переменной «material»

this.material = material;

}

 

public String getColor() { //Геттер для переменной «color»

return color;

}

 

public void setColor(String color) { //Cеттер для переменной «color»

color = color;

}

 Далее идет конструктор. Конструктор — это метод класса, который инициализирует новый объект после его создания. Он точно так же, как и геттеры и сеттеры может быть создан автоматически, только для этого после нажатия Alt+Insert в появившемся меню следует выбрать «Constructor». Далее шаги аналогичны созданию геттеров и сеттеров.

publicDish(Stringmaterial, Stringcolor) {

this.material = material;

this.color = color;

}

Далее идет метод toString. Этот метод служит для представления объекта в виде строки. Так же может быть создан автоматически при помощи Alt+Insert

@Override

public String toString() {

return "Посуда{" +

"Материал " + material + '\'' +

           ", Цвет" + color + '\'' +

              '}';

}

}

Теперь давайте создадим ещё один класс с названием Tarelka, который будет являться дочерним для класса Dish и будет от него наследоваться

Tarelka.java

public class Tarelka extends Dish {
private String razmer;

public String getRazmer() {
   return razmer;
}

public void setRazmer(String razmer) {
this.razmer = razmer;
}

public Tarelka(String material, String color, String razmer) {
   super(material, color);
this.razmer = razmer;
}

@Override
public String toString() {
   return "Tарелка{" +
           "Размер: " + razmer +
           ", Материал: " + material +
           ", Цвет: " + color +
           '}';
}
}

 

Рассмотримегоподробнее

publicclassTarelkaextendsDish { // создаемновыйкласс «Tarelka» суровнемдоступаpublic. «extendsDish» означает, что данный класс наследуется от класса Dish (созданного нами ранее) и расширяет, дополняет его. Т.е. он будет наследовать все методы и переменные, содержащиеся в классе Dish плюс к этому содержать свои методы и переменные (в нашем случае это переменная «razmer», объявленная строкой ниже)

privateStringrazmer; // создаем переменную «razmer» класса String с уровнем доступа private.

Далее идут «сеттеры» и «геттеры» для переменной «razmer»

public String getRazmer() { // геттер

returnrazmer;

}

 

public void setRazmer(String razmer) { // сеттер

this.razmer = razmer;

}

Послеидетконструктор

public void setRazmer(String razmer) {

this.razmer = razmer;

}

ИзавершаетвсёметодtoString

@Override
public String toString() {
   return "Tарелка{" +
           "Размер: " + razmer +
           ", Материал: " + material +
           ", Цвет: " + color +
           '}';
}
}

И последний класс, это класс TesterDish.

TesterDish.java

publicclassTesterDish { //создаем класс TesterDish с уровнем доступа public
publicstaticvoidmain(String[] args) {
Tarelkat = newTarelka("Керамическая","Белый","Большая"); //создаем экземпляр «t» класса Tarelka с параметрами: керамическая (переменная «material»), белый (переменная «color», большая (переменная «razmer»
System. out. println(t); //выводим объект t на экран
}
}

Рис. 17.



<== предыдущая лекция | следующая лекция ==>
Лабораторная работа №2. ООП в Java. Понятие класса | Лабораторная работа №4. Интерфейсы в Java
Поделиться с друзьями:


Дата добавления: 2018-10-18; Мы поможем в написании ваших работ!; просмотров: 1181 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Начинайте делать все, что вы можете сделать – и даже то, о чем можете хотя бы мечтать. В смелости гений, сила и магия. © Иоганн Вольфганг Гете
==> читать все изречения...

2335 - | 2134 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.