Материал предоставлен https://it.rfei.ru

Вопрос по итоговому тестированию

9 лет назад

Добрый день.

Я хотел бы проконсультироваться по ошибочно отвеченным вопросам.

Задание 7

Рассмотрим следующие определения.

sealed trait Resource {
  def goldEquiv: Int
}

class Gold extends Resource {
  def goldEquiv = 1
}

trait MaterialResource extends Resource {
  def goldEquiv = 50
}

class Ore extends MaterialResource

class Wood extends MaterialResource

trait PreciousResource extends Resource {
  def goldEquiv = 200
}

class Gem extends PreciousResource

class Crystal extends PreciousResource

class Sulfur extends PreciousResource

class Mercury extends PreciousResource

Отметьте верные утверждения:

  • Ближайший общий надтип классов Crystal и Ore — Resource.
  • Интерфейс Resource может иметь более 7 реализаций (конкретных классов).
  • Ближайший общий надтип классов Gem и Sulfur — PreciousResource. - ВЕРНО
  • Ближайший общий надтип классов Gold, Wood и Gem — Any. - ВЕРНО
  • Интерфейс Resource имеет ровно 7 реализаций (конкретных классов). - ВЕРНО
  • Ближайший общий надтип классов Gold, Wood и Gem — Resource.
  • Ближайший общий надтип классов Wood и Mercury — PreciousResource.
  • Перечисленные классы и интерфейсы не могут быть расширены в других файлах. -ВЕРНО

Исходя из принципов наследования и основываясь на иерархии типов заключил вывод что:

  • Ближайший общий надтип классов Crystal и OreResource;
  • Ближайший общий надтип классов Gold, Wood и GemResource;
  • Ближайший общий надтип классов Wood и MercuryPreciousResource — НЕВЕРНО.
  • Ближайший общий надтип классов Gem и SulfurPreciousResource. — ВЕРНО
  • Ближайший общий надтип классов Gold, Wood и GemAny. — ВЕРНО, т.к. все классы неявно наследуют этот тип.
  • Перечисленные классы и интерфейсы не могут быть расширены в других файлах. — ВЕРНО, т.к. интерфейс является запечатанным, следовательно не может быть использован в других файлах.

Также ключевое слово sealed гарантирует конечное количество конкретных классов. Исходя из этого я заключил что:

  • Интерфейс Resource имеет ровно 7 реализаций (конкретных классов). — ВЕРНО
9 лет назад

Добрый день, Владимир Владимирович.

Распространённые затруднения именно на этой проверке знания. Позвольте вам прокомментировать очевидные ошибки:

  1. Ближайший общий надтип классов Gold, Wood и GemAny. — неверно. Они имеют общий надтип — Resource.

соответственно...

2. Ближайший общий надтип классов Gold, Wood и GemResource. — верно.

3. Ближайший общий надтип классов Crystal и OreResource. — верно


Вообще, чтобы не комментировать дальше, обращу ваше внимание на то, что вопрос стоит о ближайшем ОБЩЕМ. Вам следует рассматривать не отдельно классы друг от друга, а в рамках общей иерархии наследования. Просто нарисуйте себе на бумажке какой класс наследуется от какого и все вопросы станут тривиальными.

Удачи Вам в обучении!

С уважением, Станислав Лахтин

8 лет назад

Рассмотрим следующие Scala-файлы.

Файл customer.scala:

package com.myshop
package model

import collection.mutable.ListBuffer

class Customer(val name: String,
               val address: String) {

  protected val _orders = new ListBuffer[Order]

  def orders = _orders.toSeq

  def add(order: Order) {
    _orders += order
  }

}

Файл order.scala:

package com.myshop.model

class Order(val customer: Customer,
            val status: String,
            val date: Date)

Отметьте верные утверждения.

  1. Классы пакета com.myshop.model видны в обоих файлах. — ВЕРНО
  2. Класс Customer расширяет класс Order. — НЕВЕРНО
  3. Классы пакета com.myshop видны в обоих файлах. — ВЕРНО
  4. Класс Order неизменяемый. — ВЕРНО
  5. Класс Order расширяет класс Customer. — ВЕРНО
  6. Поля класса Order неизменяемые. — ВЕРНО
  7. Класс Customer неизменяемый. — ВЕРНО
  8. Поля класса Customer неизменяемые. — ВЕРНО

Посмотрите, все-ли верно?

8 лет назад

Добрый день, Владимир Владимирович.

Здесь у Вас несколько ошибок. Причём, судя по характеру этих ошибок, пробелы в освоении касаются сразу нескольких разделов.

Прокомментирую некоторые ошибки.

Не совсем понятно, почему все классы пакета com.myshop будут видны. Повторите раздел об областях видимости.

Почему-то у вас класс Order расширяет Customer. Объясните, почему?

Повторите, что такое неизменяемый класс.


В общем, Вы совершили ошибки в разделах: наследование/расширение, области видимости, неизменности.

С уважением,
Станислав Евгеньевич Лахтин

8 лет назад

Добрый день.

Я хотел бы проконсультироваться по ошибочно отвеченным вопросам.


  • Классы пакета com.myshop.model видны в обоих файлах. — НЕВЕРНО
  • Класс Customer расширяет класс Order. — НЕВЕРНО
  • Классы пакета com.myshop видны в обоих файлах. — НЕВЕРНО
  • Класс Order неизменяемый. — ВЕРНО
  • Класс Order расширяет класс Customer. — НЕВЕРНО
  • Поля класса Order неизменяемые. — ВЕРНО
  • Класс Customer неизменяемый. — НЕВЕРНО
  • Поля класса Customer неизменяемые. — НЕВЕРНО
8 лет назад

Добрый день, Владимир Владимирович.

С ВЕРНО выбранными ответами всё в порядке.

Давайте пройдёмся по ошибкам.

Ответьте сами себе на вопрос: чем отличаются (и отличаются ли?) эти две записи:

package com.myshop.model

и

package com.myshop
package model

а потом проанализируйте свой ответ в первом пункте списка ответов.

Теперь о полях класса Customer. Давайте вы ответите сами себе на вопрос, чем отличается объявление с использованием val от var и можно ли переопределить объявление метода и преосмыслите ответ на этот пункт.

В остальном, вроде-бы верно всё.

С уважением,
Лахтин Станислав Евгеньевич

3 года назад

Файл itoghovaia_attiestatsiia_voprosy.docx был загружен.

3 года назад

Добрый день!

Ответ направлен на Ваш эл. адрес.

С уважением, Нелли

Ваш комментарий

Комментирование доступно только для авторизованных пользователей.

Файлы

Имя файлаРазмер
itoghovaia_attiestatsiia_voprosy.docx48.3 KB