Laboratoriya ishi mavzu Android uchun Java dasturlash tilida il
Amaliy qism. Keling, java class'a Student Student ismining, familiyasining, yoshining va guruh raqamining tavsifiga misolni ko'rib chiqaylik. Talabalar sinfi Ism, familiya va yoshni aniqlagan Foydalanuvchining super klassi asosida yaratiladi:
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;
}
}
Endi biz super sinf xususiyatlarini meros qilib oladigan alohida Student sinfini yaratamiz. Sinfni meros qilib olganda, siz ota -sinf konstruktorlarini ham bekor qilishingiz kerak:
public class Student extends User
{
int group;
Extends kalit so'zi bizdan User sinfidan merosxo'r ekanligimizni ko'rsatadi.
Kalit so'z Super
Student sinfining konstruktorida biz ota -ona konstruktorini super operator orqali chaqiramiz va unga barcha kerakli parametrlar to'plamini o'tkazamiz. Java -da super kalit so'z superklassni anglatadi, ya'ni. joriy sinf olingan sinf. Super kalit so'zdan superklass konstruktorini chaqirish va subklass a'zosi yashirgan superklass a'zosiga kirish uchun foydalanish mumkin.
Keling, meros ob'ekt yaratish nuqtai nazaridan qanday ishlashini ko'rib chiqaylik:
Student student = new Student(18, "Киса", "Воробьянинов", 221);
Birinchidan, Student sinfining konstruktori ochiladi, keyin User superklassining konstruktori chaqiriladi, keyin Student konstruktoridagi qolgan amallar bajariladi. Bu harakatlar ketma -ketligi juda mantiqiy va sodda narsalarga asoslangan murakkab ob'ektlarni yaratishga imkon beradi.
Superklassda bir nechta konstruktorlarning ortiqcha yuklanishi bo'lishi mumkin, shuning uchun siz turli parametrlarga ega super () ga qo'ng'iroq qilishingiz mumkin. Dastur belgilangan argumentlarga mos keladigan konstruktorni bajaradi.
Super kalit so'zning ikkinchi shakli xuddi shu kalit so'zga o'xshaydi, faqat biz har doim ishlatilgan kichik sinfning yuqori sinfiga murojaat qilamiz. Umumiy shakl quyidagicha:
super.a’zo
Bu erda a'zo usul yoki misol o'zgaruvchisi bo'lishi mumkin. Bu shakl kichik sinf a'zolarining ismlari bir xil nomdagi superklass a'zolarini yashirganda to'g'ri keladi.
class A
{
int i;
}
// A sinfidan meros
class B extends A
{
int i; // o'zgaruvchining nomi A sinfidagi i o'zgaruvchiga mos keladi va yashiradi
B(int a, int b)
{
super.i = a; // A sinfidan i o'zgaruvchiga kirish
i = b; // B sinfidan i o'zgaruvchiga kirish
}
void show()
{
System.out.println("i superklassdan teng " + super.i);
System.out.println("i kichik sinfda " + i);
}
}