4 Инкапсуляция

1 Три кита ООП

 Инкапсуляция     Наследование
 Полиморфизм
  • "студент тоже человек" (множество студентов - это подмножество людей);
  • наследник = предок + свои поля и методы => занимает больше памяти;
  • наследник может менять унаследованное поведение путем переопределения ("замещения" - overriding) методов.
  • наследник всегда может быть подставлен на место предка (т.к. "студент тоже человек").
  • "кнопки на видеомагнитофоне";
  • возможность взаимодействовать с объектом, не зная его точный тип.

  1. Инкапсуляция - "код и данные вместе".
  2. Наследование - "студент тоже человек".
  3. Полиморфизм - возможность взаимодействовать с объектом, не зная его точного типа ("кнопки на видеомагнитофоне").

2 Из чего состоит класс

public class Stakan{
    private float mass;                       // 1 поля
    private float volume;

    public Stakan(){                           // 2а конструктор по умолчанию
        инициализировать поля "дефолтными" значениями;
    }

    public Stakan(float m, float v){           //2b конструктор с параметрами
        явно инициализировать поля;
    }

    public float getMass(){...}                // 3 setter'ы и getter'ы
    public boolean setMass(float m){...}

    public void print(){                       // 4 операции с объектом. Самая популярная - print()
        распечатать информацию на экране в определенном формате
    }
}

Примеры использовния (в main()):

Stakan a = new Stakan();            // 1 объект, характеристики - по умолчанию
Stakan b = new Stakan(20, 200);     // 1 объект, характеристики заданы
Stakan[] m = new Stakan[n];         // массив ссылок
for(int i=0; i<m.length; i++){
    m[i] = new Stakan();            // заполнить ссылки - создать сами объекты!
}
/////////////// разные эксперименты ///////////////
a.print();
b.setMass(b.getMass() - 10);
и т.п...

3 Автоматическое тестирование

  1. Прочитайте раздел "Автотесты" в инструкции по DrJava (ссылка на странице "Общая информация").
  2. Скачайте Stakan_Tests.java.
  3. Внимательно изучите исходный код функций test1(), test2() и т.д.
  4. Запрограммируйте класс Stakan, как описано тут: Подробно о классе Stakan.
  5. Действуя как в "инструкции" из п.1, добейтесь, чтобы ваш класс успешно проходил все тесты.
Задание
Запрограммировать класс Stakan, заставить его правильно работать.
Подстраницы (1): Подробно о классе Stakan
Comments