Skurpiel
Skurpiel

Reputation: 35

Error cannot find symbol- Java class and methods

What's up guys, I keep receiving this error, cannot find symbol Circle aCircle = new Circle(); , when trying to compile the driver code my professor gave us. I'm wondering if it is because I haven't added it to my circle.java method. This is the circle driver.

package lab7;

public class CircleDriver {

      public static void main(String[] args) {

            Circle aCircle = new Circle();

            aCircle.setColor("green");
            aCircle.setRadius(10);
            aCircle.display();

            Double circleArea = aCircle.computeArea();
            Double circumference = aCircle.computeCircumference();

            System.out.println("circle area: " + circleArea);
            System.out.println("circle circumference: " + circumference);
            System.out.println();
          }

}

This is my circle method.`

public class Circle {

    private String color;
    private int radius;

    public Circle(String color, int radius) {
        this.color = color;
        this.radius = radius;
    }

    public Circle() {
     Circle aCircle = new Circle();

    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getRadius() {
        return radius;
    }

    public void setRadius(int radius) {
        this.radius = radius;
    }

    public void display() {
        System.out.println("I am a circle");
        System.out.println("My color is " + color);
        System.out.println("My radius is " + radius);
    }

    public double computeArea() {
        return (Math.PI * Math.pow(radius, 2));
    }

    public double computeCircumference() {
        return (2 * Math.PI * radius);
    }

}

Upvotes: 1

Views: 1812

Answers (2)

SkyWalker
SkyWalker

Reputation: 29150

Use this code. You have mistake in constructor. I hope it will solve your issue.

In Circle.java, instead of

public Circle() {
 Circle aCircle = new Circle();
}

Use this code

public Circle() {
    super();
    // TODO Auto-generated constructor stub
}

CircleDriver.java

public class CircleDriver {
    public static void main(String[] args) {
        Circle aCircle = new Circle();
        aCircle.setColor("green");
        aCircle.setRadius(10);
        aCircle.display();
        Double circleArea = aCircle.computeArea();
        Double circumference = aCircle.computeCircumference();
        System.out.println("circle area: " + circleArea);
        System.out.println("circle circumference: " + circumference);
        System.out.println();
    }
}

Circle.java

public class Circle {

    private String color;
    private int radius;

    public Circle() {
        super();
        // TODO Auto-generated constructor stub
    }

    public Circle(String color, int radius) {
        super();
        this.color = color;
        this.radius = radius;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getRadius() {
        return radius;
    }

    public void setRadius(int radius) {
        this.radius = radius;
    }

    public void display() {
        System.out.println("I am a circle");
        System.out.println("My color is " + color);
        System.out.println("My radius is " + radius);
    }

    public double computeArea() {
        return (Math.PI * Math.pow(radius, 2));
    }

    public double computeCircumference() {
        return (2 * Math.PI * radius);
    }

}

Output:

I am a circle
My color is green
My radius is 10
circle area: 314.1592653589793
circle circumference: 62.83185307179586

Upvotes: 0

DarkJade
DarkJade

Reputation: 270

You need to call a super() constructor when calling a circle. When you call

Circle aCircle = new Circle();

You are trying to initialize a circle in the local aspect. I think you are trying to inherit the Circle class that is already in java.

Leaving the circle constructor as

public Circle() {}

Should theoretically work to instantiate your class.

Upvotes: 1

Related Questions