El ejercicio deberías replantearlo teniendo en cuenta los siguientes aspectos:
- En el constructor de una clase los atributos normalmente se deben inicializar a valores que indiquen que el objeto acaba de ser creado (y que no se han establecido valores para sus atributos). Tal y como tú lo indicas todas las ruedas que se creen van a ser inicialmente de marca Micheling, en vez de eso sería más aconsejable que la marca al crear el objeto sea "Desconocida". Luego la marca se establecerá usando el método setMarca, precisamente para eso es para lo que sirve el método setMarca, para establecer el valor de la marca. Lo mismo para el tipo, grososr, diametro, etc.
- Los nombres de los métodos deben indicar qué es lo que hace el método. Por ejemplo un método como public void setDiametro1 (double valorDiametro1, double grosor1 ) parece indicar que este método sirve para establecer (set) el diámetro, pero luego te encuentras que el método sirve para otra cosa. Por tanto sería más lógico que el nombre de este método describa lo que hace el método, si no induce a confusión.
Igualemente un método sólo debe servir para hacer una cosa, no para hacer varias cosas que no guarden relación. Por tanto en public void setDiametro (double valorDiametro) únicamente debería establecerse el valor del diámetro, y no hacer comprobaciones de otro tipo. Esas comprobaciones deberían ir en un método independiente que no se llame setAlgo porque set es para establecer valores, no para otra cosa. Salu2