Objekte einer Klasse verwalten

Faili

Mitglied
Hey leute,
irgendwie fehlt mir bei dieser aufgabe der richtige denkanstoß.
3. Alle Objekte der Klasse Smartphone sollen in einer ArrayList verwaltet werden, die Methode getAllSmartphones() liefert einen Array aller Smartphone -Objekte zurück.

leider weiß ich nicht, wie ich diese umsetzen soll.
bzw. wie ich die objekte, die erstellt werden in die arrayliste speichern kann.
(muss diese Anweisung in den Konstruktor? wenn ja wie ?)
die Klasse sieht bislang so aus:

Java:
package progtestklausur;

import java.util.ArrayList;

public class Smartphone {

	//Attribute
	private String name;
	private double preis;
	private static long seriennummer;
	ArrayList<Smartphone> arr = new ArrayList<Smartphone>();
	
	//Konstruktoren
	public Smartphone(){
		seriennummer=seriennummer++;
		
		
	}
	public Smartphone(String name, double preis){
		this.name=name;
		this.preis=preis;
		seriennummer=seriennummer++;
	}
	
	//Methoden
	public ArrayList getAllSmartphones(){
		return arr;
	}
	
}

wäre euch sehr dankbar, wenn ihr mir sagt wie man so etwas richtig verwaltet.
ich habe allgemein eine Wissenslücke was das Arbeiten mit Objekten angeht.
mfg
 

kaoZ

Top Contributor
Erstelle in deiner Klasse eine Methode die ein Smartphone entgegen nimmt und dies der Listen hinzufügt:

z.B
Java:
public void addToList(SmartPhone phone){
   myList.add(phone);
}

oder ein Array aus SmartPhones entgegen nehmen kann:

Java:
public void addToList(SmartPhone...phones){
  for(SmartPhone phone : phones){
      myList.add(phone);
  }
}

Zudem solltest du deine Liste nicht arr, nennen denn so könnte man darauf Schließen das es sich um ein Array und nicht um eine Collection/List handelt ;) nenne es z.B phoneList

[EDIT]Aber warum sollte ein SmartPhone Objekt eine Liste von SmartPhones besitzen ;) ?, denk mal darüber nach, denn letztendlich repräsentiert solch ein Objekt ja ein Konkreten Gegenstand.[/EDIT]
 
Zuletzt bearbeitet:

Faili

Mitglied
schon mal vielen dank.
Allerdings wenn ich deine Methode:
Java:
    public void addToList(SmartPhone phone){
       myList.add(phone);
    }
implementiere, wie kann ich denn Sicherstellen, dass alle erzeugte Objekte der Klasse Smartphone
in dieser Liste landen ? :eek:
kann gut sein, dass ich jetzt an dir vorbeirede :D:D
aber die Aufgabenstellung verlangt ja , dass ich alle erzeugte Objekte in einer ArrayListe speichere und schließlich mit der Methode getAllSmartphones() In Form eines Arrays zurückgebe :eek:
 

turtle

Top Contributor
ArrayList<Smartphone> arr = new ArrayList<Smartphone>()
Dieses sagt doch aus das arr, kaoz hat Recht: blöder Name, eine Liste von Smartphones ist. Also ist sichergestellt, das da nur Smartphones enthalten sein können.

Trotzdem ist es schlechter Programmierstil bereits bei der Deklaration die Implementierung festzulegen. "Richtiger" wäre
Java:
		List <Smartphone> listSmartpone = new ArrayList<>();
 

Faili

Mitglied
da mir ist bekannt, dass in dieser Liste dann nur smarthpone objekte entahlten sein können.
aber ich möchte ja, dass JEDES erzeugte Objekt der klasse smartphone darin gespeichert wird.
 

stg

Top Contributor
Dann solltest du irgendwo eine (eventuell statische) Liste haben, in der ein Smartphone bei der Erstellung registriert wird. Jedenfalls würde ich diese Liste nicht direkt als Member in die Klasse Smartphone schreiben, denn sonst musst du ja für jedes einzelne Smartphone diese Liste (die ja überall gleich sein sollte?!) verwalten.
 

stg

Top Contributor
Also in etwa so:

Java:
import java.util.ArrayList;
import java.util.List;

public final class Smartphone {

	private static final List<Smartphone> smartphones = new ArrayList<>();
	
	public Smartphone() {
		Smartphone.smartphones.add(this);
	}
	
	public static void main(String [] args) {
		new Smartphone();
		new Smartphone();
		new Smartphone();
		System.out.println(Smartphone.smartphones);
	}
}

Ausgabe:

Code:
[de.jci.sso.util.Smartphone@17046822, de.jci.sso.util.Smartphone@22509bfc, de.jci.sso.util.Smartphone@5a30cefd]
 

Adelhorst

Mitglied
Hallo, hier mal ein Vorschlag meinerseits:
Java:
import java.util.ArrayList;
import java.util.List;     
    public class Smartphone {
     
        //Attribute
        private String name;
        private double preis;
        private static long seriennummer;
        private static final List<Smartphone> listSmartphone = new ArrayList<Smartphone>();
       
        //Konstruktoren
        public Smartphone(){
            seriennummer++;
            listSmartphone.add(this);
        }
        public Smartphone(String name, double preis){
            this.name=name;
            this.preis=preis;
            seriennummer++;
            listSmartphone.add(this);
        }
       
        //Methoden
        public static List<Smartphone> getAllSmartphones(){
            return listSmartphone;
        }
        public static long getSeriennummer(){
        	return seriennummer;
        }
        public String getName(){
        	return this.name;
        }
        public double getPreis(){
        	return this.preis;
        }
    }
Die Klasse könnte dann so verwendet werden:
Java:
public class Main {
	public static void main(String[] args){
		Smartphone s1 = new Smartphone("Name1", 1.0);
		Smartphone s2 = new Smartphone("Name2", 2.0);
	 
		System.out.println(Smartphone.getAllSmartphones().size());
		System.out.println(s1.getName());
		System.out.println(s2.getName());
	}
}
 
Zuletzt bearbeitet:

Adelhorst

Mitglied
Hallo stg.
Ich hatte den Browser nicht aktualisiert und deine Lösung nicht gesehen als ich gesendet hatte.
In der Grundidee unterscheidet es sich nicht, da hast du recht. :)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
J Array Objekte einer Klasse zuordnen Java Basics - Anfänger-Themen 15
F Alle Objekte einer Klasse nach Eigenschaft durchsuchen Java Basics - Anfänger-Themen 8
Z OOP Objekte einer Klasse weiteren Klassen zur Verfügung stellen Java Basics - Anfänger-Themen 17
M Von einer Klasse aus, Objekte einer anderen Klasse verändern. Java Basics - Anfänger-Themen 2
M Erste Schritte mehrere Objekte aus einer Klasse Java Basics - Anfänger-Themen 4
F Adressverwaltungsprogramm: Objekte einer Klasse in Array Java Basics - Anfänger-Themen 6
S OOP Foreach für Objekte einer Klasse? Java Basics - Anfänger-Themen 3
S Mehrere Objekte einer Klasse automatisch erzeugen Java Basics - Anfänger-Themen 15
B Objekte aus einer anderen Klasse(in der sich weitere Klassen befinden) erzeugen Java Basics - Anfänger-Themen 24
F Aller Objekte einer Klasse Java Basics - Anfänger-Themen 9
D Erste Schritte Viele Objekte einer Klasse "verwalten" Java Basics - Anfänger-Themen 17
J Klassen Objekte einer Klasse Java Basics - Anfänger-Themen 13
K in Konstruktor neue Objekte einer anderen Klasse erzeugen Java Basics - Anfänger-Themen 9
T OOP Objekte einer Klasse mit schleife auslesen Java Basics - Anfänger-Themen 7
L Mehrere Objekte einer Klasse aber nur einmal Konstruktor aufruf? Java Basics - Anfänger-Themen 2
S OOP kann ich von einer Klasse aus auf andere Objekte zugreifen? Java Basics - Anfänger-Themen 7
T Objekte einer Klasse einer anderen Klasse übergeben Java Basics - Anfänger-Themen 5
K Objekte innerhalb einer Klasse Java Basics - Anfänger-Themen 2
G auf Objekte in einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 4
N Verständnisproblem: Mehrere Objekte einer Klasse erstellen Java Basics - Anfänger-Themen 2
P Zugriff auf Objekte einer anderen Klasse Java Basics - Anfänger-Themen 1
A auf objekte in einer bereits bestehenden klasse zugreifen Java Basics - Anfänger-Themen 2
B objekte einer klasse. Java Basics - Anfänger-Themen 14
L 2 Objekte einer Klasse Java Basics - Anfänger-Themen 8
C Objekte einer Klasse wiederfinden Java Basics - Anfänger-Themen 4
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
H Auf Objekte bzw Variabeln aus einer anderen Methode zugreifen Java Basics - Anfänger-Themen 7
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
X Objekte einer ArrayList richtig ausgeben? Java Basics - Anfänger-Themen 8
V Collections Objekte einer ArrayList in der main() ausgeben Java Basics - Anfänger-Themen 9
M Objekte mit einer Schleife mehrmals erzeugen Java Basics - Anfänger-Themen 17
BobbGott Klassen 2 "Objekte" in einer Methode - wie? Java Basics - Anfänger-Themen 7
J Objekte in einer Liste Java Basics - Anfänger-Themen 3
A Objekte einer ArrayList auslesen und auf der Konsole ausgeben Java Basics - Anfänger-Themen 2
B OOP Objekte erzeugen mit Hilfe einer for Schleife Java Basics - Anfänger-Themen 29
M Input/Output Objekte in einer Textdatei ablegen (Highscore) Java Basics - Anfänger-Themen 9
C Methoden Objekte mit Hilfe einer Schleife in einer ArrayList erzeugen Java Basics - Anfänger-Themen 26
C Mehrere Objekte mit einer Methode ausgeben Java Basics - Anfänger-Themen 17
I Bestimmte Objekte einer Liste hinzufügen Java Basics - Anfänger-Themen 16
X Collections Reihenfolge bestimmter Objekte in einer ArrayList verändern Java Basics - Anfänger-Themen 2
I OOP Objekte in einer ArrayList Java Basics - Anfänger-Themen 5
W Objekte in einer Array sortieren Java Basics - Anfänger-Themen 3
O Ungleiche Objekte in einer Schleife erstellen Java Basics - Anfänger-Themen 3
I Objekte einer Liste einer weiteren List anhängen Java Basics - Anfänger-Themen 8
D Wie Objekte einer Unterklasse erstellen? Java Basics - Anfänger-Themen 14
Semox Sind Objekte in einer ArrayList überschreibbar? Java Basics - Anfänger-Themen 2
J Datensätze aus einer DB als Objekte erzeugen und in ArrayList abspeichern Java Basics - Anfänger-Themen 9
M Objekte aus einer Arraylist löschen Java Basics - Anfänger-Themen 7
A [gelöst]Objekte in einer Schleife erzeugen Java Basics - Anfänger-Themen 9
L Objekte in einer ArrayList vergleichen Java Basics - Anfänger-Themen 19
H Objekte in einer Hashtable am einfachsten sortieren Java Basics - Anfänger-Themen 13
K Vergleich zweier Objekte in einer HashMap Java Basics - Anfänger-Themen 6
E Zugriff auf Objekte in einer ArrayList Java Basics - Anfänger-Themen 3
J Objekte in einer for schleife referenzieren Java Basics - Anfänger-Themen 7
C Mehrere Objekte in einer Liste einfügen und serialisieren Java Basics - Anfänger-Themen 1
J Objekte einer ArrayList in eine Tabelle einfügen Java Basics - Anfänger-Themen 2
B Wie kann ich in einer Schleife Objekte erzeugen? Java Basics - Anfänger-Themen 5
G Objekte in einer Schleife erzeugen Java Basics - Anfänger-Themen 2
I Zapier -> wie werden Objekte gespeichert? Java Basics - Anfänger-Themen 10
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
K Hab ich dass so richtig erklärt (Objekte und Referenzen)? Java Basics - Anfänger-Themen 5
J Objekte in JSON speichern?? Java Basics - Anfänger-Themen 1
I Objekte in ShareProject speichern um später zu nutzen Java Basics - Anfänger-Themen 4
J Objekte Java Basics - Anfänger-Themen 22
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
Hzrfa Objekte, Referenz Java Basics - Anfänger-Themen 5
T 3D Objekte verarbeiten Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
I XML einlesen und Objekte bekommen Java Basics - Anfänger-Themen 2
Encera Zugriff auf Map-Objekte Java Basics - Anfänger-Themen 3
E Objekte löschen Java Basics - Anfänger-Themen 9
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
B Objekte verschwinden beim Übersetzen Java Basics - Anfänger-Themen 5
D Zwei verschiedene Intellij Projekte, wie benutze ich wechselseitig objekte Java Basics - Anfänger-Themen 8
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
G Übergeordnete Objekte abrufen Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
A Objekte mit Parametern in eine Liste packen Java Basics - Anfänger-Themen 19
B Objekte, bspw. konkret Arraylists,manuell aus Speicher löschen? Java Basics - Anfänger-Themen 70
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
D Wie Objekte im JFrame frei bewegen lassen? Java Basics - Anfänger-Themen 3
Spandeli8 Erzeugte Objekte gegenüber Bildern hervorheben in Java Processing Java Basics - Anfänger-Themen 1
J Zwei Objekte vergleichen Java Basics - Anfänger-Themen 8
L Werte von Objekte addieren Java Basics - Anfänger-Themen 14
U Objekte in LinkedList löschen und editieren Java Basics - Anfänger-Themen 14
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
G Methoden Informationen aus zwei Objekte bekommen? Java Basics - Anfänger-Themen 6
P Globale Objekte Java Basics - Anfänger-Themen 2
C Nachträglich neue grafische Objekte hinzufügen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben