/**
* (1) Add an abstract method: double getArea() to the Shape class
*
* (2) Implement the getArea method in Circle and Rectangle, like we did in
* class.
*
* (3) Modify the Shape.toString() method to also return the area of the shape.
*
* (4) Implement ShapeSorter.sortShapesByArea, which sorts the shape in
* increasing order of area. You may use bubbleSort, insertionSort, or
* selectionSort. You may NOT use a built-in sorting function (like
* Arrays.sort). Modify the Shape.toString() method to also print the area of
* the Shape.
*
* (5) Implement the ShapeSorter.isSortedByArea method, which returns true if
* the shapes array is already sorted in increasing order of area.
*
* When you run the main method, the test should pass, and all the shapes should
* be printed to the screen.
*
*
*/
public class ShapeSorter {

/**
* Sort the accounts array in order of increasing balance.
*
* Use bubbleSort, insertionSort, or selectionSort, all of which are in your
* book.
*/

I didn't read all your code but it looks like you made those classes abstract. The shape class should be abstract while everything else should inherit from the abstract shape class. Abstract classes can't be instantiated as the error says.

so okay i remove the, abstract from circle and rectangle class. now this is the error i get.

Circle.java:2: Circle is not abstract and does not override abstract method getArea() in Shape
public class Circle extends Shape {
^
Rectangle.java:2: Rectangle is not abstract and does not override abstract method getArea() in Shape
public class Rectangle extends Shape {

* (4) Implement ShapeSorter.sortShapesByArea, which sorts the shape in
* increasing order of area. You may use bubbleSort, insertionSort, or
* selectionSort. You may NOT use a built-in sorting function (like
* Arrays.sort). Modify the Shape.toString() method to also print the area of
* the Shape.

I understand what they are asking me what to do, but i don't know how to do it.

I suggest you read up(in regards to modifying toString), that way you really understand what happens. It's quite cool, the abstract class(shape, which cannot be instantiated) has an abstract method(getArea), this method is called in the shapes toString method. You may be wondering how it's possible to call an unimplemented method in a classes method. This method depends on you to subclass and implement the getArea method and when you call toString it then uses this implemented method in the toString. As far as sorting goes(I am assuming you are a college student), it is quite annoying to not be able to use the built in sort method but it's nice to understand the logic of how the methods work. You really need to step through the problem and think about the logic. I will not give you much to go on, and this may be challenging to figure out, but, whats the fun if it were easy? Take some time and think, and do research. Look up what selection sort is, what quick sort is, what insertion sort is, and finally, what bubble sort is. Try and understand how each works and decide what you think would be the most fun (or easy if you want) to implement. You can google and find lots of resources to help you out.

You may be missing a } somewhere, generally when I get that error thats what is happening. Sadly I am quite reliant on the built in sort methods, if I were to sit and think for a while I would be able to give more insight on the correct way to do the sort. Perhaps someone else here will be able to help more in that respect.