Foros del Web » Programación para mayores de 30 ;) » Java »

No me funciona este programa

Estas en el tema de No me funciona este programa en el foro de Java en Foros del Web. Hola: Quiero saber el motivo de que no me funciona el programa. Este es el programa. Código: /* * To change this template, choose Tools ...
  #1 (permalink)  
Antiguo 21/04/2011, 05:37
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 17 años
Puntos: 8
No me funciona este programa

Hola:

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

Este es el programa.
Código:
/*
 * 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.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #2 (permalink)  
Antiguo 21/04/2011, 06:03
 
Fecha de Ingreso: enero-2008
Mensajes: 201
Antigüedad: 16 años, 3 meses
Puntos: 39
Respuesta: No me funciona este programa

¿Has creado las clases "Fecha", "Hora" y "Examen"? ¿Has importado el paquete en el que están?

Algo de eso es lo que te está fallando.
  #3 (permalink)  
Antiguo 21/04/2011, 10:41
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: No me funciona este programa

Cita:
Examen programación
Aparte de lo que dice _Ruben_, las variables con tilde aunque válidas, son algo que deberías evitar.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #4 (permalink)  
Antiguo 21/04/2011, 12:10
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 17 años
Puntos: 8
Respuesta: No me funciona este programa

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
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5.  
  6. package mypkg;
  7.  
  8. /**
  9.  *
  10.  * @author Hunter
  11.  */
  12. public class Main {
  13.  
  14.     /**
  15.      * @param args the command line arguments
  16.      */
  17.     public static void main(String[] args) {
  18.         // TODO code application logic here
  19.         Fecha fecha = new Fecha(1, 4, 2005);
  20.         Hora hora = new Hora(17, 30);
  21.         Examen programación = new Examen("Programación en Java", "A105", fecha, hora);
  22.         System.out.println(programación.toString());
  23.         programación.setFecha(new Fecha(1, 6, 2005));
  24.         programación.setHora(new Hora(9, 0));
  25.         System.out.println(programación.toString());
  26.     }
  27.     public class Fecha{
  28.         private int día;
  29.         private int mes;
  30.         private int año;
  31.  
  32.         public Fecha(int día, int mes, int año){
  33.             this.día = día;
  34.             this.mes = mes;
  35.             this.año = año;
  36.         }
  37.  
  38.         public int getDía(){
  39.          return día;
  40.         }
  41.  
  42.         public int getMes(){
  43.             return mes;
  44.         }
  45.  
  46.         public int getAño(){
  47.             return año;
  48.         }
  49.  
  50.         public String toString(){
  51.             return día + "/" + mes + "/" + año;
  52.         }
  53.     }
  54.  
  55.     public class Hora{
  56.         private int hora;
  57.         private int minuto;
  58.         public Hora(int hora, int minuto){
  59.             if (hora < 0 || hora > 23 || minuto < 0 || minuto > 56){
  60.                 throw new IllegalArgumentException();
  61.             }
  62.             else{
  63.                 this.hora = hora;
  64.                 this.minuto = minuto;
  65.             }
  66.         }
  67.  
  68.         public int getHora(){
  69.             return hora;
  70.         }
  71.  
  72.         public int getMinuto(){
  73.             return minuto;
  74.         }
  75.  
  76.         public String toString(){
  77.             return hora + ":" + (minuto < 10 ? "0" : "") + minuto;
  78.         }
  79.     }
  80.  
  81.     public class Examen{
  82.         private String asignatura;
  83.         private String aula;
  84.         private Fecha fecha;
  85.         private Hora hora;
  86.  
  87.         public Examen(String asignatura, String aula, Fecha fecha, Hora hora){
  88.             this.asignatura = asignatura;
  89.             this.aula = aula;
  90.             this.fecha = fecha;
  91.             this.hora = hora;
  92.         }
  93.  
  94.         public void setAsignatura(String asifnatura){
  95.             this.asignatura = asignatura;
  96.         }
  97.  
  98.         public void setAula(String aula){
  99.             this.aula = aula;
  100.         }
  101.  
  102.         public void setFecha(Fecha fecha){
  103.             this.fecha = fecha;
  104.         }
  105.  
  106.         public void setHora(Hora hora){
  107.             this.hora = hora;
  108.         }
  109.  
  110.         public String getAsignatura(){
  111.             return asignatura;
  112.         }
  113.  
  114.         public String getAula(){
  115.             return aula;
  116.         }
  117.  
  118.         public Fecha getFecha(){
  119.             return fecha;
  120.         }
  121.  
  122.         public Hora getHora(){
  123.             return hora;
  124.         }
  125.  
  126.         public String toString(){
  127.             return "Asignatura: " + asignatura +
  128.                     "\nAula: " + aula +
  129.                     "\nFecha: " + fecha.toString() +
  130.                     "\nHora: " + hora.toString();
  131.         }
  132.     }
  133. }

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)
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar

Última edición por REHome; 21/04/2011 a las 12:47
  #5 (permalink)  
Antiguo 22/04/2011, 03:02
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: No me funciona este programa

Cita:
¿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.
Ya he dicho que son válidas, pero piensa que hay muchos idiomas en los que no existen las tildes, y como has dicho hay lenguajes que dejan y otros no. Es preferible trabajar de la forma más estándar posible, de forma que cuando cambies de lenguaje o tengas compañeros extranjeros, las cosas te salgan de forma natural.

En general el tema de los formatos de codificación da muchos problemas, sobre todo en aplicaciones web, así que te recomiendo siempre que puedas evitar ese tipo de letras.

Cita:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - non-static variable this cannot be referenced from a static context
Has declarado clases dentro de otra clase, y aunque eso se puede hacer (pero no así), no es lo que tu necesitas.

Decláralas fuera, incluso es habitual usar un fichero por cada clase.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #6 (permalink)  
Antiguo 22/04/2011, 11:04
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 17 años
Puntos: 8
Respuesta: No me funciona este programa

Ya me funciona, he puesto las clases fuera del fichero, Fecha.java, etc. Muchas gracias.

En cuanto a las tildes, ahora comprendo, mejor hacer lo que dices y no tener posibles problemas en los posibles futuros.

Gracias de nuevo a todos/as.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar

Etiquetas: programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:04.