Estoy intentando crear un método para un ejercicio, el cual debe crear un objeto película, y este método a su vez llama a un método introducir multimedia que es una super clase, pero no se como manejar el objeto que devuelve y pasárselo al constructor de películas.
// MÉTODOS DE CLASE ////////////////////////////////////////////////////////
/**
* Método para solicitar y crear los objetos multimedia
* ======================================================
*
* @return -> Objeto multimedia
*/
static Multimedia introducirMultimedia(){
// Objeto multimedia
Multimedia multimedia = new Multimedia();
// Pido titulo
System.out.print("\nTítulo del archivo multimedia: ");
entrada.nextLine();
String titulo = entrada.nextLine();
multimedia.setTitulo(titulo);
// Pido autor
System.out.print("\nAutor del archivo multimedia: ");
String autor = entrada.nextLine();
multimedia.setAutor(autor);
// Pido duración
System.out.print("\nDuración del archivo multimedia en segundos: ");
int duración = entrada.nextInt();
multimedia.setDuracion(duración);
// Pido formato
System.out.print("\nFormato del archivo multimedia (0-wav, 1-mp3, 2-midi, 3-avi, 4-mov, 5-mpg, 6-cdAudio, 7-dvd): ");
Formato formato = new Formato(entrada.nextInt());
multimedia.setFormato(formato);
return multimedia;
}
/**
* Método para solicitar una pelicula al usuario
* =============================================
*/
static void introducirPeliculas(){
// Llamamos al metodo para solicitar los datos y crear un objeto multimedia
Multimedia multimedia = new Multimedia();
multimedia = introducirMultimedia();
System.out.print("\nIntroduce el actor principal: ");
entrada.nextLine();
String actor = entrada.nextLine();
System.out.print("\nIntroduce la actriz principal: ");
String actriz = entrada.nextLine();
Pelicula pelicula = new Pelicula(actriz, actriz, multimedia);
System.out.println(pelicula.toString());
}
Al ejecutar y hacer la prueba con un toString me devuelve el objeto multimedia sin problema, es cuando creo el objeto película, dejo el output entero.
run:
1. Pelicula(Introducir)
2. Capótulo serie infantil(Introducir)
3. Fin
1
Título del archivo multimedia: titulo
Autor del archivo multimedia: autor
Duración del archivo multimedia en segundos: 90
Formato del archivo multimedia (0-wav, 1-mp3, 2-midi, 3-avi, 4-mov, 5-mpg, 6-cdAudio, 7-dvd): 0
Introduce el actor principal: actriz
Introduce la actriz principal: actor
Título: titulo, autor: autor, duración: 90 segundos, formato: wav
Exception in thread "main" java.lang.NullPointerException
at modelos.Multimedia.toString(Multimedia.java:95)
at modelos.Pelicula.toString(Pelicula.java:60)
at app.TVApp.introducirPeliculas(TVApp.java:112)
at app.TVApp.main(TVApp.java:40)
/Users/Luis/Library/Caches/NetBeans/8.2/executor-snippets/run.xml:53: Java returned: 1
BUILD FAILED (total time: 16 seconds)
Clase película:
/**
* DEFINICIÓN DE LA CLASE PELICULA
* ==============================================================================
*
* @author LUIS QUESADA ROMERO
*/
// PAQUETE AL QUE PERTENECE
package modelos;
public class Pelicula extends Multimedia{ // INICIO DE LA CLASE PRINCIPAL PELICULA
// ATRIBUTOS ///////////////////////////////////////////////////////////////
private String actorPrincipal;
private String actrizPrincipal;
private Multimedia multimedia;
// MÉTODOS CONSTRUCTORES ///////////////////////////////////////////////////
/**
* Constructor por defecto
* ========================
*/
public Pelicula() {
}
/**
* Constructor con parametros ===========================
*
* @param actorPrincipal -> Actor principal
* @param actrizPrincipal -> Actriz principal
* @param multimedia -> Objeto multimedia
*/
public Pelicula(String actorPrincipal, String actrizPrincipal, Multimedia multimedia) {
this.actorPrincipal = actorPrincipal;
this.actrizPrincipal = actrizPrincipal;
this.multimedia = multimedia;
}
// MÉTODOS GETTER //////////////////////////////////////////////////////////
public String getActorPrincipal() {
return actorPrincipal;
}
public String getActrizPrincipal() {
return actrizPrincipal;
}
public Formato getFormato() {
return multimedia.getFormato();
}
// MÉTODO TO STRING ////////////////////////////////////////////////////////
@Override
public String toString() {
return super.toString() +
"\nActor principal: " + actorPrincipal +"Actriz principal: " +actrizPrincipal;
}
// MÉTODO EQUALS
/**
* No creo que sea necesario sobre escribirlo, ya que hereda de multimedia
* y con esos datos es suficiente para poder saber si es igual o no
*/
} // FIN DE LA CLASE PRINCIPAL PELICULA