Шаг 164.
Основы Kotlin.
Наследование. Объявление класса Room

    На этом шаге мы приведем задание и использование этого класса.

    Начнем с создания нового файла в NyetHack с именем Room.kt. Он будет содержать новый класс с именем Room, представляющий один квадрат в плоскости координат NyetHack. Позже вы объявите конкретный вид комнаты в классе, который наследует характеристики Room.

    Класс Room будет иметь одно свойство - name и две функции, description() и load(). Функция description() возвращает строку с описанием комнаты. Функция load() возвращает строку для вывода в консоль после входа в комнату. Этими чертами должны обладать все комнаты в NyetHack.

    Добавьте объявление класса Room в Room.kt, как показано ниже.

class Room(val name: String) {
    fun description() = "Room: $name"
    fun load() = "Nothing much to see here..."
}


Рис.1. Объявление класса Room (Room.kt)

    Чтобы испытать новый класс Room, создайте экземпляр Room в main() на старте игры и выведите результат функции description().

import Player
import Room

fun main() {
    val player = Player("Madrigal")
    player.castFireball()

    var currentRoom = Room("Foyer")
    println(currentRoom.description())
    println(currentRoom.load())

    .   .   .   .
}
Файл с проектом можно взять здесь.


Рис.2. Вывод описания комнаты (Game.kt)

    Запустите Game.kt. В консоли появятся строки:

A glass of Fireball springs into existence. (x2)
Room: Foyer
Nothing much to see here...
(Aura: GREEN) (Blessed: YES)
Madrigal of Neversummer is in excellent condition!


Рис.3. Результат работы приложения

    Пока неплохо... Но скучно. Кто захочет проводить время в прихожей (foyer)? Настало время путешествий!

    На следующем шаге мы рассмотрим создание подкласса.




Предыдущий шаг Содержание Следующий шаг