Autor
|
Tema: Dudas con clases (Leído 4,629 veces)
|
Lain0x
Desconectado
Mensajes: 72
|
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: 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: 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: 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
|
|
|
|
Pablo Videla
|
Porque creas el alumno en el metodo si recibe un alumno ya creado supuestamente, lo que debes hacer es setearlo dentro en vez de a = new Alumno(parametros); a.setNota(nota1); a.setNota(nota2); //Podrias hacer que reciba un array de notas } array = new Arraylist(); array.add(nota1); array.add(nota2); //y llamarlo asi a.notas(array);
estos son algunas ideas XD
|
|
|
En línea
|
|
|
|
Lain0x
Desconectado
Mensajes: 72
|
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
|
|
|
|
Pablo Videla
|
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
|
|
|
|
Lain0x
Desconectado
Mensajes: 72
|
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
Mensajes: 72
|
Pero en Alumno hay un constructor que recibe 3 variables tipo Asignatura. No crees que puedan servir para referenciar?
|
|
|
En línea
|
|
|
|
Pablo Videla
|
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
|
|
|
En línea
|
|
|
|
Lain0x
Desconectado
Mensajes: 72
|
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 Vi por ahí que alguien hizo esto: a.A1 = Math.round(Math.random());
|
|
|
En línea
|
|
|
|
Lain0x
Desconectado
Mensajes: 72
|
Vi por ahí que alguien hizo esto:
a.A1 = Math.round(Math.random());
Pero son incompatibles.
|
|
|
En línea
|
|
|
|
Pablo Videla
|
Pasalo a entero
(int) Math.round(turandom);
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Clases en VB
Programación Visual Basic
|
Kizar
|
0
|
1,227
|
17 Marzo 2006, 16:56 pm
por Kizar
|
|
|
clases
Programación Visual Basic
|
elmaro
|
2
|
1,766
|
12 Septiembre 2006, 05:51 am
por elmaro
|
|
|
clases en C++
Programación C/C++
|
mapers
|
4
|
4,062
|
25 Enero 2011, 06:21 am
por mapers
|
|
|
Clases
.NET (C#, VB.NET, ASP)
|
TheGhost(Z)
|
4
|
2,983
|
14 Febrero 2011, 18:15 pm
por Edu
|
|
|
Dudas sobre Diagrama de Clases ... !
Programación General
|
llAudioslavell
|
4
|
3,120
|
17 Noviembre 2011, 05:18 am
por llAudioslavell
|
|