Ayuda con Java!!

Buenas, tengo unas dudas en unos ejercicios de Java, podria alguien echarme una mano?

Lo que se me pide es lo siguiente:
-Desarrollar una clase llamada Alumno que:
Tenga tres atributos private de tipo Asignatura
Tenga un constructor con tres parametros de tipo Asignatura que inicialice los tres atributos.
Tenga un constructor con tres parametros de tipo int que inicialice los tres atributos.
Tenga un getter para cada uno de los atributos.

Estoy ya desesperado, por que los constructores no se muy bien como ponerlos en practica..
Antes de nada : gracias
Espero que nadie te ponga la solución siendo algo tan tan tan rematadamente fácil y básico.

¿Tienes alguna duda concreta?

Para empezar, pareces no saber cual es la tarea del constructor. Aquí está explicado con ejemplo y todo : http://es.wikipedia.org/wiki/Constructo ... %C3%A1tica)
Iría en PC -> General, te reporto para que te lo muevan.

Y sobre tu pregunta, necesitas una clase Asignatura para poder tener ese tipo abstracto. Dentro de esa clase Asignatura es donde debes crear su constructor, y posteriormente en la clase Alumno pues creas constructores de Alumno que inicialicen esas clases.

Sería algo tal que así:

Asignatura
class Asignatura {

int nota;
String nombre;

public Asignatura(int nota, String nombre) {

this.nota = nota; /* Con el this decimos que la nota que se refiere es la de la clase, si no pues no sabría distinguir. Evidentemente si en el constructor ponemos otro nombre pues como que hace poca falta por el this ;). */
this.nombre = nombre;
}
}


Alumno
public class Alumno {

private Asignatura0; // Son privados, recuerda
private Asignatura1;
private Asignatura2;

public Alumno (Asignatura A, Asignatura B, Asignatura C) {

// Constructor con tres asignaturas

Asignatura0 = A;
Asignatura1 = B;
Asignatura2 = C;

}

public Alumno (int nota0, int nota1, int nota2) {

/* Este constructor supongo que se refiere a las notas de las asignatura, si te fijas yo les he puesto un nombre, pues los inicializo con la cadena vacía, ¿vale? :) */

Asignatura0 = new Asignatura(nota0, "");
Asignatura1 = new Asignatura(nota1, "");
Asignatura2 = new Asignatura(nota2, "");

}

public getNota(Asignatura A) {

/* Este es el get, realmente no entiendo muy bien lo que dices pero esto NO se debe hacer así, sería la clase Asignatura la que debería tener este get */

return A.nota; /* Devolvemos la nota de la asignatura que le pasamos por parámetro */

}
}


Espero que te sirva.

Elelegido escribió:Espero que nadie te ponga la solución siendo algo tan tan tan rematadamente fácil y básico.


Ya la había escrito :p .

Un saludo.
Si le hacéis los deberes vendrá en 3 días con más preguntas insulsas sin aportar siquiera una línea de código.
4 respuestas