🗒 Задача¶
Создай класс, описывающий круг. У него должны быть методы, вычисляющие длину окружности и площадь круга, используя радиус.
Число Pi должно быть равным 3.14, быть недоступным в других файлах и защищенным от изменений извне. Радиус передается через конструктор и не виден из внешнего по отношению к классу кода.
Создай объект, вызови у него методы для расчета окружности и площади и выведи данные в консоль.
❌ Ошибки¶
-
не выносят Pi в константу
-
не используют функцию возведения в степень
-
функции не в инфинитиве
✏️ Комментарии¶
Давай еще сделаем ее `const`, тк это все таки постоянное число. И по полной защитим ее приватным модификатором)
Название функций следует создавать в инфинитиве. В данной реализации названия этих функций ничем не отличается от обычных переменных.
Да, подразумевается использование приватной константы. Только не в области импортов, а просто вне методов и классов в файле. Причем не принципиально будет она объявлена до методов или в конце файла. Я чаще в конце прописываю все, чтобы не отвлекали.
Но еще зачастую в проектах под константы создают отдельный файл и туда их все сохраняют (мы столкнемся с этим на андройд спринте)
🧾 Решение¶
import kotlin.math.pow
private const val PI = 3.14
class Circle(private val radius: Double) {
fun getCircumference(): Double {
return 2 * PI * radius
}
fun getArea(): Double {
return PI * radius.pow(2)
}
}
fun main() {
val circle = Circle(5.0)
println("Circumference: ${circle.getCircumference()}")
println("Area: ${circle.getArea()}")
}