|
|
@@ -1,6 +1,9 @@
|
|
|
+// сочетание определения класса и конструктора одновременно объявляет переменные и задаёт их значения
|
|
|
class Rect(var x: Int, var y: Int, val width: Int, val height: Int) : Movable, Figure(0) {
|
|
|
- var color: Int = -1
|
|
|
- lateinit var name: String // значение на момент определения неизвестно
|
|
|
+ // TODO: реализовать интерфейс Transforming
|
|
|
+ var color: Int = -1 // при объявлении каждое поле нужно инициализировать
|
|
|
+
|
|
|
+ lateinit var name: String // значение на момент определения неизвестно (только для объектных типов)
|
|
|
// дополнительный конструктор вызывает основной
|
|
|
constructor(rect: Rect) : this(rect.x, rect.y, rect.width, rect.height)
|
|
|
|
|
|
@@ -11,6 +14,6 @@ class Rect(var x: Int, var y: Int, val width: Int, val height: Int) : Movable, F
|
|
|
|
|
|
// для каждого класса area() определяется по-своему
|
|
|
override fun area(): Float {
|
|
|
- return (width*height).toFloat()
|
|
|
+ return (width*height).toFloat() // требуется явное приведение к вещественному числу
|
|
|
}
|
|
|
}
|