public class TestCircle {
  /** Metoda main */
  public static void main(String[] args) {
    // Tworzy koło o promieniu 1
    Circle circle1 = new Circle();
    System.out.println("Powierzchnia koła o promieniu "
      + circle1.radius + " wynosi " + circle1.getArea());

    // Tworzy koło o promieniu 25
    Circle circle2 = new Circle(25);
    System.out.println("Powierzchnia koła o promieniu "
      + circle2.radius + " wynosi " + circle2.getArea());

    // Tworzenie koła o promieniu 125
    Circle circle3 = new Circle(125);
    System.out.println("Powierzchnia koła o promieniu "
      + circle3.radius + " wynosi " + circle3.getArea());

    // Modyfikowanie promienia
    circle2.radius = 100; // Inna możliwość to circle2.setRadius(100)
    System.out.println("Powierzchnia koła o promieniu "
      + circle2.radius + " wynosi " + circle2.getArea());
  }
}

// Definicja klasy Circle z dwoma konstruktorami
class Circle {
  double radius;

  /** Tworzy koło o promieniu 1 */
  Circle() {
    radius = 1;
  }

  /** Tworzy koło o podanym promieniu */
  Circle(double newRadius) {
    radius = newRadius;
  }

  /** Zwraca powierzchnię koła */
  double getArea() {
    return radius * radius * Math.PI;
  }

  /** Zwraca obwód koła */
  double getPerimeter() {
    return 2 * radius * Math.PI;
  }

  /** Ustawia nowy promień koła */
  void setRadius(double newRadius) {
    radius = newRadius;
  }
}
