Start New Discussion within our Software Development Community


import java.awt.Rectangle;

public interface Doubler
	public void makeDouble(Rectangle newRectangle);
import java.awt.Rectangle;

public class RectangleDoubler implements Doubler
	private double x, y, width, height;
		x = 0.0;
		y = 0.0;
		width = 0.0;
		height = 0.0;
	}//end of default constructor
	public void makeDouble(Rectangle newRectangle)
		x = newRectangle.getX();
		y = newRectangle.getY();
		width = newRectangle.getWidth();
		height = newRectangle.getHeight();

		width*=2;//doubling the width
		height*=2;//doubling the height

		newRectangle.setFrame(x, y, width, height);//setting the Rectangle into new parameters.
	}//end of doubleMethod()
}//end of class

Tester Class:

import java.awt.Rectangle;

public class RectangleDoublerTester
	public static void main(String[] args)
		Rectangle box = new Rectangle(5, 10, 20, 30);
		RectangleDoubler doubler = new RectangleDoubler();
		Rectangle box2 = doubler.makeDouble(box);

		System.out.println("Box Expected:  x=5, y=10, width=20, height=30");
		System.out.println("Box2 Expected: x=5, y=10, width=40, height=60");
	}//end of main
}//end of Tester class

I'm stuck on a homework program. Which we have to double the width and height of the Rectangle. The Tester class is set by our teacher, it can't be change.

I keep getting the error:
incompatible types at line 9 in the Tester class.

Rectangle box2 = doubler.makeDouble(box);

Also, how can I return an object? Do I have to set my method into another type?

have your makeDouble() method return a Rectangle. So something like

public interface Doubler {
     public Rectangle makeDouble(Rectangle newRectangle);

Every function declared in an interface is inherently public, so you don't need a explicit visibility modifier, also, if you don't provide a constructor with a visibility modifier the constructor will by default assume the visibility of the class it is declared in, but you should explicitly declare the visibility anyways for clarity.

This question has already been answered. Start a new discussion instead.