Bueno, no te preocupes mucho por estos detalles. Lo irás entendiendo poco a poco a medida que avances en el curso. Si hay algo del curso que no entiendas, consúltalo creando un hilo con un título adecuado e incluyendo el código de la entrega en el título, por ejemplo "Java cómo invocar un método en BlueJ y visualizar su resultado por consola CU00624B".
Tratando de buscar un ejemplo comprensible, podríamos decir que tu proyecto de BlueJ es una pecera en la cual vas poniendo barcos (objetos) que fabricas usando moldes (clases). Cada vez que compilas vacías la pecera de todo su contenido, con lo cual ya no hay ningún barco en ella. Cada vez que cierras BlueJ también vacías la pecera, con lo cual tampoco encontrarás barcos en ella cuando vuelvas a entrar. Por eso te desaparecen los objetos. Sin embargo si cierras y abres BlueJ sigues disponiendo de los moldes (clases) que te permiten fabricar objetos.
Por lo tanto los objetos desaparecen del todo, pero los moldes para crear esos objetos no (ese es tu código). Tu código de la clase Taxi te permite crear objetos de tipo Taxi.