Es verdad, me faltan las clases, ahora las agrego.
 
¿Por qué las variables contildes debería evitar? 
Hasta en Visual C# me dejan ponerlas, ñ incluido y no pada nada. El C/C++ si que no me dejan. 
Es por curiosidad.    
Edito:
El código completo es este:   
Código Java:
Ver original/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
package mypkg;
 
/**
 *
 * @author Hunter
 */
public class Main {
 
    /**
     * @param args the command line arguments
     */
    public static void main
(String[] args
) {         // TODO code application logic here
        Fecha fecha = new Fecha(1, 4, 2005);
        Hora hora = new Hora(17, 30);
        Examen programación = new Examen("Programación en Java", "A105", fecha, hora);
        System.
out.
println(programación.
toString());         programación.setFecha(new Fecha(1, 6, 2005));
        programación.setHora(new Hora(9, 0));
        System.
out.
println(programación.
toString());     }
    public class Fecha{
        private int día;
        private int mes;
        private int año;
 
        public Fecha(int día, int mes, int año){
            this.día = día;
            this.mes = mes;
            this.año = año;
        }
 
        public int getDía(){
         return día;
        }
 
        public int getMes(){
            return mes;
        }
 
        public int getAño(){
            return año;
        }
 
            return día + "/" + mes + "/" + año;
        }
    }
 
    public class Hora{
        private int hora;
        private int minuto;
        public Hora(int hora, int minuto){
            if (hora < 0 || hora > 23 || minuto < 0 || minuto > 56){
            }
            else{
                this.hora = hora;
                this.minuto = minuto;
            }
        }
 
        public int getHora(){
            return hora;
        }
 
        public int getMinuto(){
            return minuto;
        }
 
            return hora + ":" + (minuto < 10 ? "0" : "") + minuto;
        }
    }
 
    public class Examen{
        private Fecha fecha;
        private Hora hora;
 
        public Examen
(String asignatura, 
String aula, Fecha fecha, Hora hora
){             this.asignatura = asignatura;
            this.aula = aula;
            this.fecha = fecha;
            this.hora = hora;
        }
 
        public void setAsignatura
(String asifnatura
){             this.asignatura = asignatura;
        }
 
        public void setAula
(String aula
){             this.aula = aula;
        }
 
        public void setFecha(Fecha fecha){
            this.fecha = fecha;
        }
 
        public void setHora(Hora hora){
            this.hora = hora;
        }
 
        public String getAsignatura
(){             return asignatura;
        }
 
            return aula;
        }
 
        public Fecha getFecha(){
            return fecha;
        }
 
        public Hora getHora(){
            return hora;
        }
 
            return "Asignatura: " + asignatura +
                    "\nAula: " + aula +
                    "\nFecha: " + fecha.toString() +
                    "\nHora: " + hora.toString();
        }
    } 
}
  
Me da este error:
run:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - non-static variable this cannot be referenced from a static context
        at mypkg.Main.main(Main.java:19)
Java Result: 1
GENERACIÓN CORRECTA (total time: 1 second)