Java - problemas al añadir objeto

   
Vista:

problemas al añadir objeto

Publicado por jose maria josepreyes75@hotmail.com (85 intervenciones) el 15/08/2016 21:20:22
hola, soy nuevo y utilizo bluej....
tengo una clase llamada materia y otra llamada academia, de la cual solo habra una instancia...academia1
en la clase materia intento hacer algo desde su constructor pero me da fallo, como podria hacerlo?
os dejo el codigo...

1
2
3
4
5
6
private Academia academia;
public Materia()
{
  academia=new Academia();
  academia1.Ingresa_Materia(materia1);// esto es lo que no me compila
}

¿me explico que es lo que deseo hacer?

en mi proyecto tengo una clase main en la cual creo a la clase academia y tambien las instancias de esta, pero quiero incorporar esto, que cuando se cree una clase materia se añada a academia1 esta misma....
espero explicarme y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

problemas al añadir objeto

Publicado por juanki (95 intervenciones) el 15/08/2016 22:35:44
Hola

Muy importante para que podamos ayudarte ¿Porqué no te compila? ¿Qué error te da?

Así, a primera vista imagino que es por materia1, ¿De donde sale? ¿Donde lo tienes declarado?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al añadir objeto

Publicado por jose maria josepreyes75@hotmail.com (85 intervenciones) el 16/08/2016 19:50:59
buenas, en efecto, no compila por lo de materia1.... el error que da es ""cannot find symbol-variable materia1"
como dije al principio del post, tengo dos clases, Materia y Academia y otra clase main....
en la clase main creo ciertas instancias, y por ejemplo, instancio las diferentes materias (materia1, materia2....) y solo una instancia de academia (academia1)....
lo que deseo, es que automaticamente cuando se cree la instancia de materia, llame a un metodo de academia para auto añadirse en el array de esta.
esto ya lo estoy haciendo en otras clases, pero desde un metodo,no desde el constructor, y es hay donde quiero hacerlo, para que en el momento que se ceer la instancia de materia, academia la tenga en su array....
espero que ahora me haya explicado mejor...
como se ve en el codigo que puse:

1
2
3
4
5
6
private Academia academia;
public Materia()
{
  academia=new Academia();
  academia1.Ingresa_Materia(materia1);// esto es lo que no me compila
}

creo una referencia a academia en el codigo de materia....
la cosa viene cuando quiero nombrar a la uniaca instancia que habra de la clase academia (academia1), no me compila....
¿como hago referencias a las instancias de otras clases?
en el metodo de otras clases lo que hago es

1
public void IngresaClase (Clase clase)

y aqui ingrese, por ejemplo, clase1....
intente varias cosas ya que si sigo con la idea del metodo seria=
a=clase, asi que por logica lo que intente fue
a=clase1; pero tampoco funciono....
no se que mas decir para explicarme, asi que espero la cosa sea clara.

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al añadir objeto

Publicado por juanki (95 intervenciones) el 16/08/2016 21:07:05
Hola

A ver si vi bien, por que como te dije antes, veo un lío en tu código que no me aclaro:

En el constructor de la clase Materia creas un objeto de la clase Academia, al que le pasas en el método Ingresa_Materia ¿El propio objeto Materia que lo creó? Usa this:

1
academia1.Ingresa_Materia(this);

De todas formas, la clase Materia tiene una referencia a Academia y Academia una a Materia. No sé lo que pretendes hacer, pero igual te estás liando demasiado.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al añadir objeto

Publicado por jose maria josepreyes75@hotmail.com (85 intervenciones) el 16/08/2016 21:50:22
no, se muy bien lo que estoy haciendo, es parte de un ejercicio para la universidad.....
el problema que tengo es como decir que que ingrese una cosa en un array de una instancia en concreto....
olvidate del this....
imaginate que quiero agregar otra cosa en el array de la instancia academia1 y no en otra, ¿como lo haria?
gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al añadir objeto

Publicado por juanki (95 intervenciones) el 16/08/2016 21:59:26
Hola

Pues tendrás que pasárselo como parámetro al método en el que vayas a añadírselo o al constructor si es ahí donde lo añades.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al añadir objeto

Publicado por jose maria josepreyes75@hotmail.com (85 intervenciones) el 17/08/2016 11:15:34
hombre, eso ya lo se, la cosa es que no consigo realizar una signatura que compile.... por eso preguntaba....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al añadir objeto

Publicado por juanki (95 intervenciones) el 17/08/2016 19:20:29
Entonces ¿cual es el problema? Tan solo tienes que declarar el parámetro del tipo adecuado y ya está.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al añadir objeto

Publicado por jose maria josepreyes75@hotmail.com (85 intervenciones) el 17/08/2016 19:36:37
perdona pero no lo pillo, pon un ejemplo....
ya te digo que todo lo que intente tenia academia1 y eso no compila....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al añadir objeto

Publicado por juanki (95 intervenciones) el 17/08/2016 20:21:14
Hola

¿Algo así es lo que buscas?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class Parametros {
 
	public static void main (String args[]) {
		Materia mates = new Materia("Matemáticas");
		Materia lengua = new Materia("Lengua");
		Materia filosofia = new Materia("Filosofía");
 
		Academia academia = new Academia("Academia de estudios Pepito");
		academia.addMateria(mates);
		academia.addMateria(lengua);
		academia.addMateria(filosofia);
 
		academia.listarMaterias();
	}
 
}
 
class Materia {
	String titulo;
 
	Materia(String titulo) {
		this.titulo = titulo;
	}
}
 
class Academia {
	public String nombre;
	private ArrayList<Materia> materias;
 
	Academia(String nombre) {
		this.nombre = nombre;
 
		materias = new ArrayList<>();
	}
 
	public void addMateria(Materia newMateria) {
		materias.add(newMateria);
	}
 
	public void listarMaterias() {
		System.out.println("Materias de la academia " + nombre + "\n");
		for(Materia materia: materias) {
			System.out.println(materia.titulo);
		}
	}
}

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problemas al añadir objeto

Publicado por jose maria josepreyes75@hotmail.com (85 intervenciones) el 18/08/2016 11:53:18
jajajaja!!!! pareces que tu has hecho el mismo ejercicio que yo!!!!
pero no, eso ya lo tengo, lo que pretendo al hacer todo esto es "quitar cosas de la clase main" y que sean automáticas
gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar