Buenas tardes macarena, en la respuesta A estás en lo correcto, declararla es
SalonCasa salon;
(los atributos y metodos no tienen nada que ver, eso es interno de la clase) declarar lo que hace es reservar un espacio de memoria para el objeto SalonCasa llamado salon; (que efectivamente cumplira las normas que le hayas escrito dentro de la clase SalonCasa) pero declararlo es lo anterior.
Y inicializarla es cuando usas el new y llamas al constructor
salon = new SalonCasa();
Te lo pongo todo en una linea
SalonCasa salon = new SalonCasa() clase --> SalonCasa nombre q le ponemos ---> salon Constructor---> SalonCasa()
La respuesta C es correcta, Math viene cargada por defecto y por esa razón se puede llamar a sus métodos, representaria que ya esta inicializada automaticamente, por simplificar.
La respuesta B no es correcta, un constructor vacio, no deja de ser un constructor, y se creará el objeto, simplemente que no se le pasan parametros, y inicializará con valores que desconocemos. Pero no deja de ser un constructor igualmente.
Espero haberte aclarado un poco el tema