Hola LPM
Respecto a tu consulta sobre el Notepad++ que muestra mal los caracteres con acentos.
No te puedo ayudar. Espero que algún compañero del foro pueda indicarte.
Por mi parte solo puedo decirte que no uses palabras con acentos.
Yo uso el IDE BlueJ y en el editor me acepta caracteres acentuados y la 'ñ'. Pero, los textos que salen por consola aparecen con caracteres raros para los acentos y 'ñ'.
Mi solución. Cuido que los textos por pantalla no tengan acentos.
En cuanto a tu ejercicio compila bien y sin errores.
Pero estarás de acuerdo conmigo que no has cumplido lo que se pedía.
Vamos a repasar las cosas que debes tener en cuenta:
1º En el encabezado de la clase se declaran los atributos. Y se declaran así
private String nombre;
private String apellidos;
private int edad;
private boolean casado;
private boolean especialista;
Sin asignar valores, que se hace en el constructor
2º El primer constructor
public Profesor (String nombreProfesor, String apellidosProfesor){
nombre=nombreProfesor;
apellidos=apellidosProfesor;
edad=30;
casado=true;
especialista=true;
}
debería ser
public Profesor (String nombreProfesor, String apellidosProfesor, int edadProfesor, boolean estaCasado, boolean esEspecialista){
nombre=nombreProfesor;
apellidos=apellidosProfesor;
edad=edadProfesor;
casado=estaCasado;
especialista=esEspecialista;
}
En el enunciado del ejercicio se pide 'constructor con los parámetros necesarios para inicializar', es decir parámetros para todos y cada uno de los atributos de la clase.
3º El constructor sin parámetros se usa para inicializar los atributos con sus valores por defecto. Debería ser así
public Profesor (){
nombre="";
apellidos="";
edad=0;
casado=false;
especialista=false;
}
Los String se inicializan en cadena vacía, los int a cero y los boolean a false
4º Los métodos get, todos perfectos. Pero faltan los set, deberían ser así por ejemplo.
public String setNombre (String valorNombre) {nombre = valorNombre;}
public String setApellidos (String valorApellidos) {apellidos = valorApellidos;}
public int setEdad () {edad = valorEdad;}
public boolean setCasado (boolean valorCasado) {casado = valorCasado;}
public boolean setEspecialista (boolean valorEspecialista) {especialista = valorEspecialista;}
Aparte
El método main que has creado, es válido como otro cualquiera. Voy a pensar que lo has creado para cumplir con la siguiente cita del ejercicio
Compila el código para comprobar que no presenta errores, crea un objeto usando un constructor y luego otro objeto usando el otro constructor. Comprueba que se inicializan correctamente consultando el valor de sus atributos después de haber creado los objetos.
Para cumplir con esa petición, debías hacerlo con el IDE BlueJ (Hago un inciso. Este curso está pensado para seguirlo con BlueJ por las facilidades que da para hacer por ejemplo lo que se pide aquí).
Deberías plantearte instalar BlueJ para seguir este curso.
BlueJ es adecuado al 99% para aprender Java. Si estás aprendiendo Java, es la mejor opción. Más adelante puedes programar con Notepad++, NetBeans o el editor que quieras.
En lecciones anteriores se explica lo que se muestra resumido en esta imagen de la lección
Crear objetos con la clase compilada, una clase sin main puede crear los objetos que implementa y manipular sus atributos en BlueJ
Si tienes dudas no dudes en consultar.
Saludos