Hola Bcks7,
Cuando se crea una clase con un constructor que recibe los atributos lo que se busca es que, al crear un objeto de esta clase, se le puedan dar esos atributos.
Miremos paso a paso el constructor:
public Profesor (String nombreProfesor, String apellidoProfesor, int edadProfesor, boolean casadoProfesor, boolean especialistaProfesor){
Lo que queremos es que, al crear el objeto, nos pida:
1º Un nombre de Profesor y lo guarda en la variable nombreProfesor.
2º Un apellido y lo guarde en la variable apellidoProfesor.
3º Una edad y la guarde en la variable edadProfesor.
4º Un false o true si esta casado y lo guarde en la variable casadoProfesor.
5º Un false o true si esta especializado y lo guarde en la variable especialistaProfesor.
Y con estos atributos que se le han dado creara el objeto.
El Problema es que en las siguientes líneas de código, si le ponemos:
nombre = "nombreProfesor";
apellidos = "apellidosProfesor";
edad = 0;
casado = false;
especialista = false;
Lo que estamos haciendo es cambiarle esos atributos por (en este ultimo caso) nombreProfesor, apellidosProfesor, 0, false y false.
Para guardar los valores que le hemos dado al crear el objeto lo que debemos poner es:
nombre = nombreProfesor;
apellidos = apellidosProfesor;
edad = edadProfesor;
casado = casadoProfesor;
especialista = especialistaProfesor;
De esta forma, si por ejemplo, al crear el objeto la damos un Nombre de Profesor "Paco", lo que hace es que el valor "Paco" que lo hemos recogido en la variable temporal <nombreProfesor> lo guarda en la variable <nombre> de la clase.
Realiza el cambio y haz una prueba creando un par de objetos y dándole atributos distintos para que veas claramente la diferencia.
Espero habértelo sabido explicar correctamente, pero si no es así, ya sabes... envíame un comentario y lo volvemos a repasar.
Un Saludo,