A game where you jump over cars and shoot aliens
Every game object has a draw function for rendering, and an update function for game logic which is then called by either the matching manager class, or the root GameView class every frame.
Manager classes are used when there a game object is used multiple times in the same game. For example there are multiple enemies and bullets so they have manager classes.
All game rendering is done by the GameView class, which is a subclass of JPanel which overrides the paintComponent method.
The main loop is a swing timer in GameView with no delay. There is no FPS limit so most game objects that move are sent the last time to render, so that it can ensure that the movement speed is fixed.