Hallo, ich benötige Hilfe bei OOP im Allgemeinen.
Ich habe eine Klasse mit diversen Parametern die in einer anderen Klasse mit getter und setter Methoden.
Mein Problem ist jetzt, dass ich in einer dritten Klasse mit der main Methode nun ein Objekt erstellen will.
Das Objekt soll in etwa so erstellt werden.
Konkreter: Es gibt die Klasse Album.java mit den privaten Variablen long id, String artist, String title, Vector<String> songs, Integer year (für das Erscheinungsjahr).
Dementsprechende getter und setter Methoden gibt es in der Klasse, wobei jedes Objekt mit der id instanziiert wird.
In der Klasse AlbumControl soll ein neues Album-Objekt mittels der Methode addAlbum erstellen.
Sie Soll die obigen Variablen als Parameter haben.
Hier mein Code von der Klasse Album.
Ist es dabei richtig den Vector für die Songs schon bei den Klassenvariablen zu erstellen (Zeile 7)?
Nun will ich in der Klasse AlbumControl nur die Methode addAlbum(long id, String artist, String title, Vector<String> songs, Integer year)
Ist das wirklich möglich dies über die ständig selbe Album Instanz test zu machen?
Auch ist mir nicht klar wie ich den Vector nun hinkriege. test.addSong(songs); scheint da nicht zu klappen -> 'not applicable'
In der "Testlauf"-Klasse mit der main habe ich mir sowas wie das hier vorgestellt:
Ausgegeben wird aber nur "[]" - was mache ich alles falsch? :bahnhof:
Ich habe eine Klasse mit diversen Parametern die in einer anderen Klasse mit getter und setter Methoden.
Mein Problem ist jetzt, dass ich in einer dritten Klasse mit der main Methode nun ein Objekt erstellen will.
Das Objekt soll in etwa so erstellt werden.
Konkreter: Es gibt die Klasse Album.java mit den privaten Variablen long id, String artist, String title, Vector<String> songs, Integer year (für das Erscheinungsjahr).
Dementsprechende getter und setter Methoden gibt es in der Klasse, wobei jedes Objekt mit der id instanziiert wird.
In der Klasse AlbumControl soll ein neues Album-Objekt mittels der Methode addAlbum erstellen.
Sie Soll die obigen Variablen als Parameter haben.
Hier mein Code von der Klasse Album.
Ist es dabei richtig den Vector für die Songs schon bei den Klassenvariablen zu erstellen (Zeile 7)?
Java:
package randompackage;
import java.util.*;
public class Album {
private long id;
private String artist;
private String title;
private Vector<String> songs = new Vector<String>();
private Integer year;
public Album(long id){
this.id = id;
this.artist = "";
this.title = "";
this.year = null;
}
public long getId(){
return id;
}
public void setTitle(String title){
this.title = title;
}
public String getTitle(){
return title;
}
public Vector<String> getSongs(){
return songs;
}
public void setYear(int year){
this.year = year;
}
public int getYear(){
return year;
}
public void setArtist(String artist){
this.artist = artist;
}
public String getArtist(){
return artist;
}
}
Nun will ich in der Klasse AlbumControl nur die Methode addAlbum(long id, String artist, String title, Vector<String> songs, Integer year)
Ist das wirklich möglich dies über die ständig selbe Album Instanz test zu machen?
Auch ist mir nicht klar wie ich den Vector nun hinkriege. test.addSong(songs); scheint da nicht zu klappen -> 'not applicable'
Java:
package justapackage;
import java.util.*;
public class AdminControl {
private Vector<Album> albums;
public AdminControl(){
albums = new Vector<Album>();
}
public boolean addAlbum(long id, String artist, String title, Vector<String> songs, Integer year){
Album test = new Album(id);
test.setArtist(title);
test.addSong(songs);
test.setTitle(title);
test.setYear(year);
}
}
In der "Testlauf"-Klasse mit der main habe ich mir sowas wie das hier vorgestellt:
Java:
package justapackage;
import java.util.*;
public class Main {
public static void main (String[] args){
Vector<String> song = new Vector();
song.addElement("'Smells Like Teen Spirit");
AlbumControl test = new AlbumControl();
System.out.println((test.addAlbum(0, "Nirvana", song, 1991)));
}
}
Ausgegeben wird aber nur "[]" - was mache ich alles falsch? :bahnhof:
Zuletzt bearbeitet von einem Moderator: