Цель работы: Изучить


Практическая часть лаборатории


Download 0.76 Mb.
bet4/13
Sana23.12.2022
Hajmi0.76 Mb.
#1046697
1   2   3   4   5   6   7   8   9   ...   13
Bog'liq
Лабораторная работа1-6

Практическая часть лаборатории
Навигационная система Плей Маркета постоянно совершенствуется, но неизменно остается удобной для пользователей. На скриншоте стартовая страница, как видите все просто!

Рис1. Play Market
Рассмотрим пример описания java class'a студента Student, который имеет имя, фамилию, возраст, и номер группы. Класс студента будем создавать на основе super класса пользователя User, у которого уже определены имя, фамилия и возраст:
public class User
{
int age;
String firstName;
String lastName;
// Конструктор
public User(int age, String firstName, String lastName)
{
this.age = age;
this.firstName = firstName;
this.lastName = lastName;
}
}
Теперь создаем отдельный класс Student, наследующего свойства super класса. При наследовании класса необходимо также переопределить и конструкторы родительского класса :
public class Student extends User
{
int group;

// Конструктор
public Student(int age, String firstName, String lastName)
{
super(age, firstName, lastName);
}
boolean isMyGroup(int g)
{
return g == group;
}
}
Ключевое слово extends показывает, что мы наследуемся от класса User.

Ключевое слово super


В конструкторе класса Student мы вызываем конструктор родительского класса через оператор super, передавая ему весь необходимой набор параметров. В Java ключевое слово super обозначает суперкласс, т.е. класс, производным от которого является текущий класс. Ключевое слово super можно использовать для вызова конструктора суперкласса и для обращения к члену суперкласса, скрытому членом подкласса.
Рассмотрим как происходит наследование с точки зрения создания объекта :
Student student = new Student(18, "Киса", "Воробьянинов", 221);
Сначала открывается конструктор класса Student, после этого вызывается конструктор суперкласса User, а затем выполняются оставшиеся операции в конструкторе Student. Такая последовательность действий вполне логична и позволяет создавать более сложные объекты на основе более простых.
У суперкласса могут быть несколько перегруженных версий конструкторов, поэтому можно вызывать метод super() с разными параметрами. Программа выполнит тот конструктор, который соответствует указанным аргументам.
Вторая форма ключевого слова super действует подобно ключевому слову this, только при этом мы всегда ссылаемся на суперкласс подкласса, в котором она использована. Общая форма имеет следующий вид:
super.
Здесь член может быть методом либо переменной экземпляра. Подобная форма подходит в тех случаях, когда имена членов подкласса скрывают члены суперкласса с такими же именами.
class A
{
int i;
}

// наследуемся от класса A


class B extends A
{
int i; // имя переменной совпадает и скрывает переменную i в классе A
B(int a, int b)
{
super.i = a; // обращаемся к переменной i из класса A
i = b; // обращаемся к переменной i из класса B
}
void show()
{
System.out.println("i из суперкласса равно " + super.i);
System.out.println("i в подклассе равно " + i);
}
}

class MainActivity


{
B subClass = new B(1, 2);
subClass.show();
}
В результате в консоли мы должны увидеть :

i из суперкласса равно 1


i в подклассе равно 2



Download 0.76 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   13




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling