Я знаю, что этот вопрос задавали много раз, и я читал множество ответов, но я не могу понять, как исправить мою проблему. Вот мой код:Нестационарная переменная не может ссылаться на статический контекст java
public class Circle
{
public int diameter;
public int xPosition;
public int yPosition;
public String color;
public Circle()
{
diameter = 30;
xPosition = 20;
yPosition = 60;
color = "blue";
}
public void toString()
{
System.out.println("The diameter of the circle is " + Circle.diameter);
System.out.println("The x position of the circle is " + Circle.xPosition);
System.out.println("The y position of the circle is " + Circle.yPosition);
System.out.println("The colour of the circle is " + Circle.color);
}
public static void main(String[] args)
{
Circle c1 = new Circle();
c1.toString();
}
}
я первоначально решить проблему путем изменения:
public class Circle
{
public int diameter;
public int xPosition;
public int yPosition;
public String color;
}
в
public class Circle
{
public static int diameter;
public static int xPosition;
public static int yPosition;
public static String color;
}
Хотя это работа, я чувствую, что это не очень хороший способ сделать Это. Я прочитал кое-что о переменных экземпляра, но я не уверен, как это сделать.
Спасибо.
Обратите внимание, что 'public void toString()' - очень плохое имя метода. Вместо этого вы должны переопределить метод 'toString()' из класса 'Object'. I.e 'public String toString()' и вернуть строку, описывающую ваш объект. –