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

problema al no poder ejecutar unos metodos

Estas en el tema de problema al no poder ejecutar unos metodos en el foro de Java en Foros del Web. tengo dos clases y en la clase principal no puedo ejecutar algunos metodos de la otra clase si me pudieran ayudar se los agradeciera, por ...
  #1 (permalink)  
Antiguo 09/06/2012, 18:28
 
Fecha de Ingreso: junio-2012
Ubicación: Culiacán, Sinaloa, México.
Mensajes: 2
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta problema al no poder ejecutar unos metodos

tengo dos clases y en la clase principal no puedo ejecutar algunos metodos de la otra clase si me pudieran ayudar se los agradeciera, por que estoy realmente perdido .

clase principal:

Código Javascript:
Ver original
  1. package estudiar;
  2. import paq1.*;
  3. public class Principal {
  4.  
  5.  
  6.     public static void main(String[] args) {
  7.         int numero_alumnos, numero_materias;
  8.         String nombre, nombre_materias = null;
  9.         long cuenta, calificacion_materias=0;
  10.        
  11.        
  12.        
  13.         do
  14.         {
  15.             System.out.print("Teclea el numero de alumnos :");
  16.             numero_alumnos=Leer.datoInt();
  17.         }while (numero_alumnos<0);
  18.         do
  19.         {
  20.             System.out.print("Teclea el numero de materias cursadas por el alumno :");
  21.             numero_materias=Leer.datoInt();
  22.         }while (numero_materias<0);
  23.         for (int i=0; i<numero_alumnos; i++)
  24.         {
  25.             do
  26.             {
  27.                 System.out.print("Teclea el numero de cuenta :");
  28.                 cuenta=Leer.datoLong();
  29.             }while (cuenta<0);
  30.            
  31.             System.out.print("Teclee el nombre del alumno :");
  32.             nombre=Leer.dato();
  33.         }
  34.        
  35.         Alumno met= new Alumno ();
  36.         met.setNumero_materias(numero_materias);
  37.         met.Leer(nombre_materias, calificacion_materias);
  38.         met.Desplegar(nombre_materias);
  39.  
  40.     }
  41.    
  42.  
  43. }

la clase de los metodos

Código Javascript:
Ver original
  1. package estudiar;
  2. import paq1.*;
  3. public class Alumno
  4. {
  5.     private int numero_materias=0;
  6.     long suma_materias, promedio;
  7.    
  8.     public int getNumero_materias() {
  9.         return numero_materias;
  10.     }
  11.  
  12.     public void setNumero_materias(int numero_materias) {
  13.         this.numero_materias = numero_materias;
  14.     }
  15.  
  16.     Alumno c[]= new Alumno [numero_materias];
  17.    
  18.     public String Leer (String nombre_materias, long calificacion_materias)
  19.     {
  20.         for (int i=0; i<c.length;i++)
  21.         {
  22.             System.out.print("Teclea el nombre de la materia :");
  23.             nombre_materias=Leer.dato();
  24.             System.out.print("Teclea la calificacion de la materia :");
  25.             calificacion_materias=Leer.datoLong();
  26.             suma_materias=suma_materias+ calificacion_materias;
  27.         }
  28.         return nombre_materias;
  29.         }
  30.         public long Leer (long calificacion_materias)
  31.         {
  32.             for (int i=0; i<c.length;i++)
  33.             {
  34.                 System.out.print("Teclea la calificacion de la materia :");
  35.                 calificacion_materias=Leer.datoLong();
  36.                 suma_materias=suma_materias+ calificacion_materias;
  37.             }
  38.         promedio=suma_materias/numero_materias;
  39.         return calificacion_materias;
  40.     }
  41.     public void Desplegar (String nombre)
  42.     {
  43.         if (promedio>=70)
  44.         {
  45.             System.out.println("el alumno"+ nombre+"esta APROBADO");
  46.         if (promedio<70)
  47.             System.out.println("el alumno "+nombre+" esta REPROBADO");
  48.                
  49.         }
  50.     }
  51.  
  52. }

Última edición por miguel_6793; 09/06/2012 a las 18:43
  #2 (permalink)  
Antiguo 10/06/2012, 17:07
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: problema al no poder ejecutar unos metodos

Código Java:
Ver original
  1. Alumno c[]= new Alumno [numero_materias];
Ese es tu problema, lo estás inicializando en CERO al instanciar un Alumno y el método no está redimenciando el Array
Código Java:
Ver original
  1. public void setNumero_materias(int numero_materias) {
  2.         this.numero_materias = numero_materias;
  3.         //acá debería inicializarlo nuevamente
  4.        c = new Alumno [numero_materias];
  5.     }

Existe una práctica sencilla y rápida para hacer debug en estas cuestiones, ir poniendo System.out.println();
Porque la llamada al método parece estar bien, pero nunca entra al ciclo FOR por lo que te mencioné.
Ej:
Código Java:
Ver original
  1. public String Leer (String nombre_materias, long calificacion_materias)    {
  2. System.out.println("entró el método Leer");

PD: no se cuan nuevo seas en Java, pero deberías apegarte (respetar) las convenciones de código, te va servir a vos (cuando leas) y a cualquiera que lea tu código.
http://www.oracle.com/technetwork/ja...nv-138413.html
__________________
BadProgrammerException!

Última edición por FiruzzZ; 10/06/2012 a las 17:12
  #3 (permalink)  
Antiguo 10/06/2012, 17:33
 
Fecha de Ingreso: junio-2012
Ubicación: Culiacán, Sinaloa, México.
Mensajes: 2
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: problema al no poder ejecutar unos metodos

Cita:
Iniciado por FiruzzZ Ver Mensaje
Código Java:
Ver original
  1. Alumno c[]= new Alumno [numero_materias];
Ese es tu problema, lo estás inicializando en CERO al instanciar un Alumno y el método no está redimenciando el Array
Código Java:
Ver original
  1. public void setNumero_materias(int numero_materias) {
  2.         this.numero_materias = numero_materias;
  3.         //acá debería inicializarlo nuevamente
  4.        c = new Alumno [numero_materias];
  5.     }

Existe una práctica sencilla y rápida para hacer debug en estas cuestiones, ir poniendo System.out.println();
Porque la llamada al método parece estar bien, pero nunca entra al ciclo FOR por lo que te mencioné.
Ej:
Código Java:
Ver original
  1. public String Leer (String nombre_materias, long calificacion_materias)    {
  2. System.out.println("entró el método Leer");

PD: no se cuan nuevo seas en Java, pero deberías apegarte (respetar) las convenciones de código, te va servir a vos (cuando leas) y a cualquiera que lea tu código.
[URL="http://www.oracle.com/technetwork/java/codeconv-138413.html"]http://www.oracle.com/technetwork/java/codeconv-138413.html[/URL]
aver si entendi, ¿el arreglo tiene que ir adentro del set para que este sea incializado? y no quede como 0 y nunca pueda entrar al metodo.

muy bueno tu consejo lo tomare en cuenta

apenas estoy en POO en ing. en sistemas computacionales soy demasiado nuevo.
muchas gracias por tus consejos

Etiquetas: metodos
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 08:17.