это. Java и объекты

Я создал два круглых объекта, каждый из которых (насколько я думал) имеет разное значение радиуса. Однако вывод для каждого объекта Circle одинаков. Из моего глубокого понимания программирования у меня сложилось впечатление, что если вы не передаете параметр для своего объекта, объект использует конструктор по умолчанию. Может кто-нибудь объяснить, где я ошибаюсь, и как я могу получить два разных объекта круга с разными значениями радиуса?

//create circle object use method to find area

package circle;

public class Circle {

    static final double PI = 3.14;
    static private double radius;
    static private double area;
    static private String name;

    //default constructor 
    public Circle()
    {
      this.radius = 2;
    }

    //constructor with argument
    public Circle(int radius)
    {
        this.name = "JOESHMO-THE-CIRCLE";
        this.radius = radius;

    }

    public static double getRadius()
    {

        return radius;
    }

    public static double getArea()
    {

        //calculate area
        area = PI * Math.pow(radius,2);

        return area;
    }

    public static String getName()
    {

        return name;
    }


    public static void main(String[] args) {


        Circle circle1 = new Circle(4);

        Circle circle2 = new Circle();

        double answer = circle1.getArea();

        System.out.println(answer);
        System.out.println("The radius of " + circle1.getName() + " is " + circle1.getRadius());

        System.out.println(circle2.getArea());

    }

}

вывод в настоящее время:

12.56

The radius of JOESHMO-THE-CIRCLE is 2.0

12.56

person DevEarl    schedule 11.03.2016    source источник
comment
Избавьтесь от этих статических полей и методов — сделайте их нестатическими!   -  person Hovercraft Full Of Eels    schedule 11.03.2016
comment
статические поля будут содержать значения, просто удалите ключевое слово static   -  person Rishi    schedule 11.03.2016
comment
Ваша проблема в том, что статические поля являются общими для всех экземпляров класса, и поэтому, если вы измените его в одном экземпляре, вы измените его во всех, и именно поэтому эти поля и методы выше (кроме основного метода) должны не быть статичным.   -  person Hovercraft Full Of Eels    schedule 11.03.2016
comment
Спасибо за быстрые ответы!   -  person DevEarl    schedule 11.03.2016
comment
Должен искать, прежде чем задать вопрос   -  person KumarAnkit    schedule 08.01.2019