Д.з.№2 Простые и ссылочные типы

Задания

  1. Если не успели сделать это на паре - разберитесь как создать "неровный" двумерный массив - у которого в разных строках разное количество элементов. См. Хорстманн, гл. 3, с. 123.
  2. Нарисуйте (в тетради) структуру расположения в памяти "неровного" треугольного массива следующего вида:
  3. 1

    1 2

    1 2 3

    1 2 3 4

    (в виде ячеек со стрелками и числами - как у Хорстманна на с. 123)

    Какой тип имеет каждая из изображенных на рисунке ячеек памяти?

  4. (О) Напишите программу, которая создаст массив NxM из случайных целых чисел, для каждой строки вычислит среднее арифметическое и переставит строки в порядке убывания полученных значений.
  5. (О) Напишите программу, которая вычислит ваш возраст в часах (и, по желанию, минутах). Чтобы узнать текущую дату и время, используйте класс Date; для указания своей даты и времени рождения - класс GregorianCalendar (Хорстманн, глава 4). Проверьте правильность полученного результата с помощью какого-нибудь аналогичного вашей программе онлайн-сервиса. Не используйте устаревшие (deprecated) методы!
  6. Проверьте, что метод swap() из 4-ой главы Хорстманна (с. 163) действительно не работает (вместо Employee используйте класс Date). Объясните, почему. Подумайте, как его переписать, чтобы он начал работать так, как ожидается.
  7. (Д) Используя свой - исправленный - вариант метода swap для объектов Date, напишите программу, которая заполняет с клавиатуры, а затем сортирует массив дат.

Вопросы

  1. Приведите пример кода для выделения памяти под двумерный массив с помощью цикла (одна итерация цикла = одна строка массива). Например - создайте таким способом массив для хранения нижнеотреугольной матрицы.
  2. Как создать объект класса?
  3. Приведите пример кода, распечатывающего на экране двумерный массив.
  4. Объясните, зачем придумали методы equals и clone. (см., например, классы String и Date)
  5. Как проявляется различие между простыми и ссылочными типами, когда это - параметры функции?
  6. Что произойдет, если у неинициализированной объектной ссылки вызвать какой-нибудь метод?
  7. Приведите пример кода, создающий и распечатывающий на экране массив из 10 объектов класса Date.
Comments