K. Ichigo escribió:Tengo una clase por ejemplo Alumno, con un método
getNombre()
En la clase (aparte) Grupo, quiero imprimir el nombre dentro de un método. Como lo debo hacer exactamente?
Dentro del método he probado:
System.out.println("El alumno se llama "+getNombre());
System.out.println("El alumno se llama "+Alumno.getNombre());
Pero no funciona.
public class Alumno{
private String nombre;
private String apellido;
public Alumno(String n, String a){
nombre = n;
apellido = a;
}
public void setNombre(String n){
nombre = n;
}
public String getNombre(){
return nombre;
}
public void setApellido(String a){
apellido = a;
}
public String getApellido(){
return apellido;
}
}
import javabook2.*;
public class Grupo{
private String nombreProfesor;
private char letra;
private Alumno[] tablaAlumnos;
private int contador;
public Grupo(String n, char l, int max){
nombreProfesor = n;
letra = l;
tablaAlumnos = new Alumno[max];
contador = 0;
}
public void añadirAlumno(){
String nombre;
String apellido;
if(contador < tablaAlumnos.length){
nombre = SimpleInput.getString("Nombre?");
apellido = SimpleInput.getString("Apellido?");
tablaAlumnos[contador] = new Alumno(nombre,apellido);
}else{
System.out.println("Error.");
}
}
public void imprimir(){
System.out.println("************Aquí es lo que os pido*******");
}
}
ocihc escribió:estan las dos clases metidas en el mismo package? hace tiempo que no programo en java pero me suena errores de ese tipo por ese problema.
salu2
Lamentablemente tengo que seguir lo que me piden en clase. Osea que lo del next long, scanner... no lo puedo utilizar.Sepho escribió:Edito: Veo que hay un método que pide por teclado (o eso creo) el nombre y apellidos si se cumple el if... pon un punto de ruptura en esa parte y comprueba que se introducen bien los datos. De todas formas si no te obligan a usar ninguna clase en concreto puedes hacer:
Scanner teclado=new Scanner(System.in); //Esto debajo del class
nombre=teclado.nextLong();
apellidos=teclado.nextLong();
Y eso leeria una cadena de caracteres por teclado y los almacenaria en nombre y apellidos.
Sepho escribió:Vaya, con el scanner es mas comodo
Respecto a la clase Alumno, no entiendo por qué tiene un método setNombre si ya hay un constructor que almacena los datos en las variables, es decir, al crear un new Alumno(nombre, apellidos) estas creando un objeto de la clase Alumno con un nombre y un apellido, no creo que deban ir esos metodos, ya que servirian para cambiar el nomrbre a un alumno aunque si os lo han pedido asi en clase nada, es solo q se me hace raro ^^
juas escribió:Si tienen sentido, para cambiar el valor de los atributos una vez instanciado el objeto (por ejemplo).
Ah coñoSepho escribió:
Sentido de "lenguaje" si tienen, pero no tiene sentido cambiarle el nombre a un alumno, a eso me refiero
visto así vale, bueno, puede ser útil si has metido la gamba introducciendo el nombre
. juas escribió:Ah coñovisto así vale, bueno, puede ser útil si has metido la gamba introducciendo el nombre
.
xklibur escribió:Haber.. aki hay una cosa q no m cuadara...
public void añadirAlumno(){
String nombre;
String apellido;
if(contador < tablaAlumnos.length){ <---- esto no m cuadra
nombre = SimpleInput.getString("Nombre?");
apellido = SimpleInput.getString("Apellido?");
tablaAlumnos[contador] = new Alumno(nombre,apellido);
}else{
System.out.println("Error.");
}
}
para ir añadiendo alumnos al array, primero comparas el contador, con los alumnos q hay.. pero haber.. el contador donde lo incrementas ??, por que la comparación de contador siempre es si 0 < que algo, siempre va a dar falso.. con lo cual no t va a hacer el IF. no ?