Solar System model: Moving Space Balls
First up, this is a nice project, and your implementation looks like it has the right basic concepts, but you're right, it could be done better.

There are two concepts you need to apply that will help you a lot...

Parent -> child relationships

The first is the concept of a parent/child relationship. You should consider that each object in your solar system has one or more child objects. The sun has the planets, the planets may have moons.

The logic of 'animating' your solar system is common to all objects. First, you move the object, then you move the dependent ones.

To do this, I extend the PointInSpace class to be:

public class ObjectInSpace extends PointInSpace {
    private final List&lt;ObjectInSpace&gt; dependents = new ArrayList&lt;&gt;();
    private final ObjectInSpace parent;

    public ObjectInSpace(ObjectInSpace parent, double distance, double angle, double diameter, String colour, double speed) {
        super(distance, angle, diameter, colour, speed);
        if (parent != null) {
            parent.addDependent(this);
        }
    }

    private void addDependent(ObjectInSpace kid) {
        // can only be called from constructor of kid instance
        dependents.add(kid);
    }

    public ObjectInSpace getParent() {
        return parent;
    }
    public List&lt;ObjectInSpace&gt; getDependents() {
        // return a copy, not the actual list.
        return new ArrayList&lt;&gt;(dependents);
    }
}


Right, now, with the above class, you can construct your solar system from the top down....

ObjectInSpace sun = new ObjectInSpace(null, .....);
....
ObjectInSpace earth = new ObjectInSpace(sun, ....);
....
ObjectInSpace moon = new ObjectInSpace(earth, ....);


Note that the only thing you need to remember is the sun, and all the other objects 'hang off' the sun. So, create a method:

public ObjectInSpace buildSolarSystem() {
    ObjectInSpace sun = .....
    ....
    return sun;
}


and then, in your code, you can just have:

ObjectInSpace solarsystem = buildSolarSystem();


Now, when you need to draw/move the solar system, you just need to visit every object, from the sun down, and process that object, then process in turn all of its children...

... which leads on to the second concept:

Recursion

The next concept to process is recursion. Consider the need to draw the solar system. All you need is a method:

public void draw(ObjectInSpace object) {
    // draw the object
    ....
    for (ObjectInSpace kid : object.getDependents()) {
        // recurse and draw the kid
        draw(kid);
    }
}


Something similar can be done to move the objects:

public void move(ObjectInSpace object) {
    // move the object
    if (object.getParent() != null) {
        // move the object relative to the parent.
    }
    ....
    for (ObjectInSpace kid : object.getDependents()) {
        // recurse and move the kid
        move(kid);
    }
}