Перейти к содержанию

🗒 Задача

Создай класс, описывающий круг. У него должны быть методы, вычисляющие длину окружности и площадь круга, используя радиус.

Число 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()}")
}