elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 01:57  


Tema destacado: Recuperar cuenta de Google, GMail, Youtube

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  Dudas con clases
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dudas con clases  (Leído 521 veces)
Lain0x

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Dudas con clases
« en: 23 Noviembre 2011, 19:08 »

Tengo que desarrollar una clase que Profe que tenga un método poneNotas y recibe un parámetro tipo Alumno y este método no devuelve nada. Lo que hace es poner una calificación a cada asignatura del alumno.

Tengo una clase Asignatura:

Código:
public class Asignatura {
    private int ident, cal;
   
    public Asignatura(int int)
    {
       
        this.ident = ident;
    }
   
    public int getIdent()
    {
        return ident;
    }
   
    public int getCal()
    {
        return cal;
    }
   
    public void setIdent(int y)
    {
        cal = y;
    }
   

La clase Alumno:

Código:
public class Alumno {
   
    private Asignatura a1, a2, a3;
   
    public Alumno(Asignatura a1, Asignatura a2, Asignatura a3)
    {
        this.a1 = a1;
        this.a2 = a2;
        this.a3 = a3;
    }
   
    public Alumno(int b1, int b2, int b3)
    {
        a1 = new Asignatura(b1);
        a2 = new Asignatura(b2);
        a3 = new Asignatura(b3);
    }
   
    public Asignatura getA1()
    {
        return a1;
    }
   
    public Asignatura getA2()
    {
        return a2;
    }
   
    public Asignatura getA3()
    {
        return a3;
    }
   
}
   

Clase Profesor:

Código:
public class Profesor {
   
    public void ponerNotas(Alumno a)
    {
        double n1, n2, n3;
       
        n1 = Math.round(Math.random());
        n2 = Math.round(Math.random());
        n3 = Math.round(Math.random());
       
        a = new Alumno(n1,n2,n3);
    }
}

El problema está en que el constructor Alumno(int, int, int) recibe como parámetros el número que identifica a cada asignatura, y no las calificaciones.

O quizás en el constructor de Asignatura(int ident) en realidad sea Asignatura(int cal) (cal = calificación).

Pero el otro détalle es que las notas deben ser tipo double, y no int.

Saludos.



En línea
DonVidela


Desconectado Desconectado

Mensajes: 1.617



Ver Perfil WWW
Re: Dudas con clases
« Respuesta #1 en: 23 Noviembre 2011, 19:12 »

Porque creas el alumno en el metodo si recibe un alumno ya creado supuestamente, lo que debes hacer es setearlo dentro

en vez de
Código
 a = new Alumno(parametros);
 
a.setNota(nota1);
a.setNota(nota2); //Podrias hacer que reciba un array de notas
 
 
public void notas(ArrayList notas){
 
}
 
array = new Arraylist();
array.add(nota1);
array.add(nota2);
//y llamarlo asi a.notas(array);

estos son algunas ideas XD


En línea

Aprendiendo: Java , C# , pl/sql, mysql , sql server, PHP , Access, JSF, Facelets, JSP, CakePHP, JQuery

http://pablovidela.wordpress.com
Lain0x

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Dudas con clases
« Respuesta #2 en: 23 Noviembre 2011, 19:41 »

Es que la variable a es tipo Alumno, y en clase Alumno no se pide hacer método set. En la clase Asignatura hay un método set. Con ese método seteo la calificación, pero no podría hacer referencia a ese método solamente usando una variable tipo alumno.
En línea
DonVidela


Desconectado Desconectado

Mensajes: 1.617



Ver Perfil WWW
Re: Dudas con clases
« Respuesta #3 en: 23 Noviembre 2011, 19:47 »

Es que la variable a es tipo Alumno, y en clase Alumno no se pide hacer método set. En la clase Asignatura hay un método set. Con ese método seteo la calificación, pero no podría hacer referencia a ese método solamente usando una variable tipo alumno.

La pregunta es, como referencias la nota del alumno con la asignatura, no veo nada parecido ahi, la clase profesor dice poner nota, pero el alumno no tiene un atributo llamado nota , ni nada parecido, creo que te falta un atributo.
En línea

Aprendiendo: Java , C# , pl/sql, mysql , sql server, PHP , Access, JSF, Facelets, JSP, CakePHP, JQuery

http://pablovidela.wordpress.com
Lain0x

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Dudas con clases
« Respuesta #4 en: 23 Noviembre 2011, 19:50 »

La pregunta es, como referencias la nota del alumno con la asignatura, no veo nada parecido ahi, la clase profesor dice poner nota, pero el alumno no tiene un atributo llamado nota , ni nada parecido, creo que te falta un atributo.

Pero en alumno hay un constructor que recibe 3 variables tipo Asignatura. No crees que puedan servir para referenciar?
En línea
Lain0x

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Dudas con clases
« Respuesta #5 en: 23 Noviembre 2011, 19:50 »

Pero en Alumno hay un constructor que recibe 3 variables tipo Asignatura. No crees que puedan servir para referenciar?
En línea
DonVidela


Desconectado Desconectado

Mensajes: 1.617



Ver Perfil WWW
Re: Dudas con clases
« Respuesta #6 en: 23 Noviembre 2011, 20:04 »



Si, pero asignatura no tiene un atributo llamado notas, lo ideal sería que lo tuviera un arreglo de notas por cada asignatura

private double[] notas;  o private ArrayList notas; prefiero el arraylist  :xD
En línea

Aprendiendo: Java , C# , pl/sql, mysql , sql server, PHP , Access, JSF, Facelets, JSP, CakePHP, JQuery

http://pablovidela.wordpress.com
Lain0x

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Dudas con clases
« Respuesta #7 en: 23 Noviembre 2011, 20:15 »

Si, pero asignatura no tiene un atributo llamado notas, lo ideal sería que lo tuviera un arreglo de notas por cada asignatura

private double[] notas;  o private ArrayList notas; prefiero el arraylist  :xD

Vi por ahí que alguien hizo esto:

a.A1 = Math.round(Math.random());

En línea
Lain0x

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Dudas con clases
« Respuesta #8 en: 23 Noviembre 2011, 20:18 »

Vi por ahí que alguien hizo esto:

a.A1 = Math.round(Math.random());



Pero son incompatibles.
En línea
DonVidela


Desconectado Desconectado

Mensajes: 1.617



Ver Perfil WWW
Re: Dudas con clases
« Respuesta #9 en: 23 Noviembre 2011, 20:24 »

Pasalo a entero

(int) Math.round(turandom);
En línea

Aprendiendo: Java , C# , pl/sql, mysql , sql server, PHP , Access, JSF, Facelets, JSP, CakePHP, JQuery

http://pablovidela.wordpress.com
DonVidela


Desconectado Desconectado

Mensajes: 1.617



Ver Perfil WWW
Re: Dudas con clases
« Respuesta #10 en: 23 Noviembre 2011, 20:25 »

Alumnos recibe asignaturas, no notas



Asignatura una = new Asignatura(7);

Alumno = new Alumno(una); // recibe tres asignaturas, crea tres y le pasas las tres  :xD
En línea

Aprendiendo: Java , C# , pl/sql, mysql , sql server, PHP , Access, JSF, Facelets, JSP, CakePHP, JQuery

http://pablovidela.wordpress.com
Lain0x

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Dudas con clases
« Respuesta #11 en: 24 Noviembre 2011, 16:03 »

Ya lo solucioné, de esta forma:

Código:
a.getA1().setCal(Math.round(Math.random()));
En línea
DonVidela


Desconectado Desconectado

Mensajes: 1.617



Ver Perfil WWW
Re: Dudas con clases
« Respuesta #12 en: 24 Noviembre 2011, 16:20 »

Bien , coloca los atributos para que sean mas descriptivos en vez de cal que tal notaAlumno xD

asi entenderemos a simple vista.
En línea

Aprendiendo: Java , C# , pl/sql, mysql , sql server, PHP , Access, JSF, Facelets, JSP, CakePHP, JQuery

http://pablovidela.wordpress.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Clases 113 a 116
Programación C/C++
maxwellnewage 2 500 Último mensaje 18 Septiembre 2009, 00:49
por maxwellnewage
Clases C (EDH)
Programación C/C++
maxwellnewage 0 411 Último mensaje 14 Enero 2010, 02:57
por maxwellnewage
clases en C++
Programación C/C++
mapers 4 1,080 Último mensaje 25 Enero 2011, 06:21
por mapers
Clases
.NET
TheGhost(Z) 4 561 Último mensaje 14 Febrero 2011, 18:15
por Edu
Dudas sobre Diagrama de Clases ... !
Programación General
Audioslave™ 4 766 Último mensaje 17 Noviembre 2011, 05:18
por Audioslave™
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines