Hola, respecto a los ejercicios y escritura de código: debes escribir todos los fragmentos de código que se plantean en el curso y ejecutarlos en tu ordenador usando BlueJ (para ello puedes pulsar sobre la clase, botón derecho, elegir new NombreClase() donde NombreClase será el nombre de la clase que estés usando, por ejemplo new Taxi(). Una vez tienes creado el objeto, prueba sus métodos de la forma que se explica en el curso.
Por último, para comprobar que estás asimilando lo explicado, escribe fragmentos de código haciendo pequeños cambios en los programas propuestos y comprueba que obtienes los resultados esperados. Por ejemplo para la entrega CU00650B partes del código que "Combina las tres primeras letras de dos textos introducidos por el usuario en una sola cadena separada por un espacio". Tú deberías probar a hacer cambios en el programa y comprobar que sabes resolverlo, por ejemplo cambiar el código para que se haga la combinación de 3 cadenas donde se combinen las cinco primeras letras de tres textos introducidos por el usuario en una sola cadena separadas por un guión bajo.
Si eres capaz de modificar el código y ejecutarlo para que se ejecuten variantes es que has asimilado los conceptos.
Respecto a los conceptos de clase y objeto, es como dices: una clase te permite definir los métodos y variables que tendrán todos los objetos del tipo que define la clase. Por eso muchas veces se dice que "una clase define un tipo". Por ejemplo, con la clase definimos el tipo Taxi, Tranvia, Autobus, etc. pero todavía no existen objetos, sólo hemos definido qué es un Taxi, Tranvía, Autobús, etc. luego tendremos que crear los objetos, tantos como queramos. Por ejemplo podremos crear 20 objetos taxi, 12 objetos tranvía, 3 objetos autobús, etc.