No me funciona este programa

Iniciado por Meta, 21 Abril 2011, 13:36 PM

0 Miembros y 2 Visitantes están viendo este tema.

Meta

Hola:

Quiero saber el motivo de que no me funciona el programa.

Este es el programa.
Código (java) [Seleccionar]
/*
* 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());
    }

}




Saludo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

BoF

Simplemente no te encuentra esas clases que estas intentando usar.

.mokk.

Donde estan las clases Fecha,Hora y Examen?

sapito169

pues el unico que deberia saber eso eres tu de donde conseguiste el codigo ?

Meta

Supuestamente el código completo.

Código (java) [Seleccionar]
/*
* 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;
        }

        public String toString(){
            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){
                throw new IllegalArgumentException();
            }
            else{
                this.hora = hora;
                this.minuto = minuto;
            }
        }

        public int getHora(){
            return hora;
        }

        public int getMinuto(){
            return minuto;
        }

        public String toString(){
            return hora + ":" + (minuto < 10 ? "0" : "") + minuto;
        }
    }

    public class Examen{
        private String asignatura;
        private String aula;
        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;
        }

        public String getAula(){
            return aula;
        }

        public Fecha getFecha(){
            return fecha;
        }

        public Hora getHora(){
            return hora;
        }

        public String toString(){
            return "Asignatura: " + asignatura +
                    "\nAula: " + aula +
                    "\nFecha: " + fecha.toString() +
                    "\nHora: " + hora.toString();
        }
    }
}


Me da este fallo.
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: 3 seconds)
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

1mpuls0

 :¬¬

Deja las clases Fecha, Hora y Examen fuera de la clase Main.

Es decir crea otros archivos java con el nombre de esas clases (Hora.java, Fecha.java y Examen.java)
Aunque también puedes dejarlos en el mismo archivo (pero fuera de la clase Main) y tendrías que quitar el public a cada clase (excepto Main).


Saludos.
abc

Meta

Lo puse hacia fuera como dijiste y me funciona a la primera.

Una duda. Si lo dejo dentro en el mismo archivo como me dijiste sin el public, entonces funciona como dices???????????

Gracias por la ayuda, ahora lo entiendo un poco mejor.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

1mpuls0

Cita de: Meta en 22 Abril 2011, 05:57 AM
Lo puse hacia fuera como dijiste y me funciona a la primera.

Una duda. Si lo dejo dentro en el mismo archivo como me dijiste sin el public, entonces funciona como dices???????????

Gracias por la ayuda, ahora lo entiendo un poco mejor.

Si, debe de funcionar así.

Ojo dentro del mismo archivo, no de la misma clase, es decir.
El nombre de tu archivo debe tener el mismo nombre en donde se encuentre el método main ademas de que esa clase debe ser pública.

Código (java) [Seleccionar]
public static void main(String[] args) {}

Main.java
Código (java) [Seleccionar]

/*Clase Main*/
public class Main{
  // TODO add your handling code here:
}

/*Clase Fecha*/
class Fecha {
  // TODO add your handling code here:
}

/*Clase Hora*/
class Hora{
  // TODO add your handling code here:
}

/*Clase Examen*/
class Examen{
  // TODO add your handling code here:
}



Saludos.
abc

Meta

Gracias por la aclaración mi muy distinguido amigo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/