Санкт-Петербургский национальный исследовательский университет

информационных технологий, механики и оптики

Кафедра информатики и прикладной математики

Программирование интернет-приложений

Лабораторная работа №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

Выводы по работе

В процессе выполнения работы были рассмотрен принцип наследования классов, переопределение методов в классах – предках, модификаторы полей, методов.