1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | fun main(args: Array<String>) { val rectangle = Rectangle(5.0, 2.0) //no 'new' keyword required val triangle = Triangle(3.0, 4.0, 5.0) println("Area of rectangle is ${rectangle.calculateArea()}, its perimeter is ${rectangle.perimeter}") println("Area of triangle is ${triangle.calculateArea()}, its perimeter is ${triangle.perimeter}") } abstract class Shape(val sides: List<Double>) { val perimeter: Double get() = sides.sum() abstract fun calculateArea(): Double } interface RectangleProperties { val isSquare: Boolean } class Rectangle( var height: Double, var length: Double ) : Shape(listOf(height, length, height, length)), RectangleProperties { override val isSquare: Boolean get() = length == height override fun calculateArea(): Double = height * length } class Triangle( var sideA: Double, var sideB: Double, var sideC: Double ) : Shape(listOf(sideA, sideB, sideC)) { override fun calculateArea(): Double { val s = perimeter / 2 return Math.sqrt(s * (s - sideA) * (s - sideB) * (s - sideC)) } } | cs |
'Kotlin > Basic Syntax' 카테고리의 다른 글
7. Using ranges & collections (0) | 2018.05.31 |
---|---|
6. Using for loop & while loop & when expression (0) | 2018.05.31 |
5. Using Type checks & Automatic casts (0) | 2018.05.31 |
4. Using nullable values and Checking for null (0) | 2018.05.31 |
3. Using String templates & Conditional expressions (0) | 2018.05.31 |