Санкт-Петербургский национальный исследовательский университет
информационных технологий, механики и оптики
Кафедра информатики и прикладной математики
Программирование интернет-приложений
Лабораторная работа №2
Выполнил
Группа 2121
2012 г.
Текст программы
// var. 105
public class Lab2 {
public static void main(String[] args) {
C a = new C(); // Создание объектов
C b = new B(); // классов
B c = new B(); // С и В
a. m39(); // Вызов нестатических методов классов В и С
a. m27();
a. m40();
b. m26();
c. m33();
b. m25();
c. m20();
b. m1();
a. m24();
a. m16();
a. m13(a);
a. m13(b);
c. m13(c);
}
}
class C {
int m17; //Нестатические поля класса С
int m22;
int m30;
int m34;
int m21;
long m8;
long m6;
long m19;
int[] m28 = {3, 0, 1, -1, -1};
int[] m29 = {1, 0, -1, -2, 0};
int[] m23 = {0, 2, -2, 1, 3};
static int m36; // Статические поля класса С
static int m35;
static int m31;
static int m3;
static int m9;
public C() { // Конструктор объектов класса С
m17 = 7;
m22 = 7;
m30 = 9;
m34 = 3;
m21 = 8;
m8 = 6L;
m6 = 2L;
m19 = 3L;
}
public void m39() { // Нестатические методы класса С
System. out. println("метод m39 в классе C");
System. out. println(m22 + 5);
}
public void m27() {
System. out. println("метод m27 в классе C");
System. out. println(m30 + 5);
}
public void m40() {
System. out. println("метод m40 в классе C");
System. out. println(m30);
}
public void m26() {
System. out. println("метод m26 в классе C");
System. out. println((int)m19);
}
public void m33() {
System. out. println("метод m33 в классе C");
System. out. println(m34);
}
public void m25() {
System. out. println("метод m25 в классе C");
System. out. println((int)m8);
}
public static void m20() { //статические методы класса С
System. out. println("метод m20 в классе C");
System. out. println(m3);
}
public static void m1() {
System. out. println("метод m1 в классе C");
System. out. println((m3 - 3));
}
public static void m24() {
System. out. println("метод m24 в классе C");
System. out. println(m9);
}
public static void m16() {
System. out. println("метод m16 в классе C");
System. out. println((m9 - 1));
}
public void m13(C r) { //Нестатический метод, в качестве параметра
r. m39(); //которому передается объект класса С
}
public void m13(B r) { //Нестатический метод, в качестве параметра
r. m27(); //которому передается объект класса B
}
}
class B extends C { // Класс B, предок класса С (Расширяющий класс С)
public B() { // Конструктор класс В
m17 = 8;
m30 = 5;
m34 = 8;
m6 = 3L;
}
public void m39() { // Переопределение нестатического метода m39
System. out. println("метод m39 в классе B");
System. out. println(m29[2] - m29[1]);
}
public void m40() { // Переопределение нестатического метода m40
System. out. println("метод m40 в классе B");
System. out. println(m29[1]);
}
public void m26() { // Переопределение нестатического метода m26
System. out. println("метод m26 в классе B");
System. out. println(--m22);
}
public static void m20() { // Переопределение статического метода m20
System. out. println("метод m20 в классе B");
System. out. println((m36 - 2));
}
public static void m1() { // Переопределение статического метода m1
System. out. println("метод m1 в классе B");
System. out. println(++m36);
}
public static void m24() { // Переопределение статического метода m24
System. out. println("метод m24 в классе B");
System. out. println(m35);
}
public static void m16() { // Переопределение нестатического метода m16
System. out. println("метод m16 в классе B");
System. out. println((m35 - 3));
}
public void m13(C r) { // Переопределение нестатического метода m13,
r. m40(); // с параметром - объектом класса С
}
public void m13(B r) { // Переопределение нестатического метода m13,
r. m26(); // с параметром - объектом класса С
}
}
Результаты выполнения
метод m39 в классе C
12
метод m27 в классе C
14
метод m40 в классе C
9
метод m26 в классе B
6
метод m33 в классе C
8
метод m25 в классе C
6
метод m20 в классе B
-2
метод m1 в классе C
-3
метод m24 в классе C
0
метод m16 в классе C
-1
метод m39 в классе C
12
метод m39 в классе B
-1
метод m26 в классе B
6
Выводы по работе
В процессе выполнения работы были рассмотрен принцип наследования классов, переопределение методов в классах – предках, модификаторы полей, методов.


