默认构造函数问题的错误在哪里?

时间:2018-12-29 03:59:17

标签: java debugging constructor

我是一名Java自学者,陷入了一个关于构造函数的问题。我得到一些提示public void Circle()中存在问题,但是我仍然不知道如何调试它。有人可以帮助我吗?在此先感谢:)

public class Circle {
    public Color color;

    public static void main(String[] args) {
        Circle circle = new Circle();
        circle.color.setDescription("Red");
        System.out.println(circle.color.getDescription());
    } 

    public void Circle() {
        Color color = new Color();
    }

    public class Color {
        String description;

        public String getDescription() {
            return description;
        }

        public void setDescription(String description) {
            this.description = description;
        }
    }
}

3 个答案:

答案 0 :(得分:3)

不是构造函数。构造函数不是void方法。另外,您的方法中有一个本地color变量。我想你想要

public Circle() {
    this.color = new Color();
}

答案 1 :(得分:1)

Java中的构造函数是一种用于初始化对象的特殊方法。创建类的对象时将调用构造函数。

在您的情况下,您正在呼叫public void Circle()

注意,构造函数名称必须与类名称匹配,并且不能具有返回类型(如 void )。

还请注意,创建对象时会调用构造函数。

默认情况下,所有类都具有构造函数:如果您自己没有创建类构造函数,则 Java为您创建一个构造函数。但是,您将无法设置对象属性的初始值。

因此,在您的情况下,构造函数应类似于:

public Circle() {
    //what ever you want here
}

答案 2 :(得分:0)

public Circle() {
    this.color = new Color();
}

构造函数没有返回类型