Über abstrakte Klasse auf eine Klasse zugreifen?

Lybrial

Bekanntes Mitglied
Hallo Leute,

Ich habe hier eine generische ArrayListe mit einer Schnittstelle implementiert:

ArrayListe:
Java:
public class ArrayList<T extends Comparable<T>> extends ArrayListContainer<T>{
	private int mLastIndex;
	private Object[] mArray;
	//*****Konstruktor***********************
	public ArrayList(){
		this(new Object[42]);
	}
	//*****Konstruktor***********************
	public ArrayList(int aSize){
		setArray(new Object[aSize]);
		setLastIndex(0);
	}
	//*****Konstruktor***********************
	public ArrayList(Object[] aArray){
		setArray(aArray);
		setLastIndex(aArray.length);
	}
	//*********************************************************************
	public int quantity(){
		return getLastIndex();
	}
	//*********************************************************************
	public void add(T aObject){
		if(getLastIndex() == getArray().length){
			arrayGrow();
		}
		getArray()[getLastIndex()] = aObject;
		mLastIndex++;
	}
	//*********************************************************************
	public T objectAtIndex(int aIndex){
	    return (T)(getArray()[aIndex]);
	}
	//*********************************************************************
	public boolean addObjectAtIndex(int aIndex, T aObject){
		if(aIndex >= 0 && aIndex <= quantity()){
			if(getLastIndex() == getArray().length){
				arrayGrow();
			}
			for(int i = getLastIndex(); i > aIndex; i--){
				getArray()[i] = getArray()[i-1];
			}
			getArray()[aIndex] = aObject;
			return true;
		}
		else
			return false;
	}
	//*********************************************************************
	public boolean deleteObjectAtIndex(int aIndex){
		if(aIndex >= 0 && aIndex <= quantity()){
			for(int i = aIndex; i < getLastIndex()-1; i++){
				getArray()[i] = getArray()[i+1];
			}
			mLastIndex--;
			getArray()[getLastIndex()] = null;
			return true;
		}
		else
			return false;
	}
	//*********************************************************************
	public int deleteObject(T aObject){
		int count = 0;
		for(int i = 0; i < getArray().length; i++){
			if(getArray()[i] == aObject){
				deleteObjectAtIndex(i);
				count++;
			}
		}
		return count;
	}
	//*********************************************************************
	public boolean isInArray(T aObject){
		for(int i = 0; i < getLastIndex(); i++){
			if(getArray()[i] == aObject){
				return true;
			}
		}
		return false;
	}
	//*********************************************************************
	public void arrayGrow(){
		Object vArray[] = new Object[getArray().length*2];
		for(int i = 0; i < getArray().length; i++){
			vArray[i] = getArray()[i];
		}
		setArray(vArray);
	}
	//*********************************************************************
	public int getLastIndex(){
		return mLastIndex;
	}
	public void setLastIndex(int mLastIndex){
		this.mLastIndex = mLastIndex;
	}
	public Object[] getArray(){
		return mArray;
	}
	public void setArray(Object[] mArray){
		this.mArray = mArray;
	}
}

Schnittstelle:
Java:
public abstract class ArrayListContainer<T>{
	public abstract int quantity();
	public abstract void add(T aObject);
	public abstract T objectAtIndex(int aIndex);
	public abstract boolean addObjectAtIndex(int aIndex, T aObject);
	public abstract boolean deleteObjectAtIndex(int aIndex);
	public abstract int deleteObject(T aObject);
	public abstract boolean isInArray(T aObject);
	public abstract void arrayGrow();
}

Nun zu meiner Frage:
Wie funktioniert es, die ArrayList über den ArrayListContainer anzusprechen?
Das heißt ich möchte nicht direkt eine Instanz von ArrayList erstellen sondern
das eben über den Container laufen lassen?

Grüße
 

Dekker

Bekanntes Mitglied
Naja, eine Abstrakte Klasse ist normaler weise eine Klasse die Basisfunktionalitäten besitzt, aber selbst nichst instanziiert werden kann. Du musst eine Klasse haben die von der Abstraktenklasse erbt. Diese Klasse kannst du dann instanziieren.
 

Lybrial

Bekanntes Mitglied
Ok dann versteh ich aber nun wieder etwas nicht, habe folgendes mal zum Testen erstellt:

Java:
public class Test{
	public static void main(String[] args){
		Inventory inv = new Inventory();
		ArrayList<String> arrayListName = new ArrayList<String>(inv.getInventoryNames());
		ArrayList<Integer> arrayListPrice = new ArrayList<Integer>(inv.getInventoryPrice());
		ArrayList<Integer> arrayListAmount = new ArrayList<Integer>(inv.getInventoryAmount());
		for(int i = 0; i < arrayListName.getArray().length; i++){
			System.out.print(arrayListName.getArray()[i]);
		}
	}
}

Jetzt ist es so das sich die ArrayList<String> wunderbar erzeugen lässt, er mir aber für die beiden
ArrayList<Integer> anzeigt: "The constructor ArrayList<Integer>(int[]) is undefined"
Die ArrayList habe ich im ersten Beitrag gepostet und eigentlich ist schon ein Konstruktor für Arrays da,
funktioniert ja schließlich mit den Strings.

===========================================================
*solved*
Der Fehler bestand in einer anderen Klasse, nämlich in der Inventory.
Als Rückgabewert für getInventoryPrice und Amount hatte ich int[] und nicht Integer[] ;)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
C Methoden Über eine einfach verkettete Liste Java Basics - Anfänger-Themen 8
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
B OOP Über eine doppelt verkettete Liste iterieren Java Basics - Anfänger-Themen 4
O Über Map laufen Erklärung Java Basics - Anfänger-Themen 4
U Best Practice Buttons sollen ÜBER Labeln liegen, also quasi im Vordergrund. WIE? Java Basics - Anfänger-Themen 4
AssELAss Über ein Objekt vom Typ BigDecimal iterieren Java Basics - Anfänger-Themen 6
L Über 100e Werte anzeigen Java GUI Java Basics - Anfänger-Themen 1
0 Über CMD die JAVA Datei ausführen? möglich? Java Basics - Anfänger-Themen 8
A Über Jahr iterieren, Freitag der 13. Java Basics - Anfänger-Themen 2
S Über Button Zeichnung ändern Java Basics - Anfänger-Themen 5
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
J Über ... Dialog (Mac OS) Java Basics - Anfänger-Themen 8
PINTOR Über IP verschicken Java Basics - Anfänger-Themen 3
D Über ein Interface methoden ansprechen Java Basics - Anfänger-Themen 9
C Über Boolean Static, String ausgeben Java Basics - Anfänger-Themen 3
S Über Bild zeichnen Java Basics - Anfänger-Themen 21
H Mac Menu-Über Programm anpassen Java Basics - Anfänger-Themen 3
K Datentypen Über Collection iterieren bringt fehler Java Basics - Anfänger-Themen 8
P Über HashMap iterieren -> NullPointerException Java Basics - Anfänger-Themen 2
J Array List - Über die Konsole eingeben Java Basics - Anfänger-Themen 1
A Struts: Über Collection iterieren mir Taglibs? Java Basics - Anfänger-Themen 13
G Über Button DB Tabelleninhalt löschen Java Basics - Anfänger-Themen 24
M Über einen Button etwas zeichnen lassen Java Basics - Anfänger-Themen 5
G Über undo, copy, cat, paste, delete Funktionen Java Basics - Anfänger-Themen 3
D Über Button abhängig von Auswahl 2 versch. Fenster öffnen Java Basics - Anfänger-Themen 2
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
S Vererbung Abstrakte Methoden: Wozu das Ganze?! Java Basics - Anfänger-Themen 7
S abstrakte methoden in subclass? Java Basics - Anfänger-Themen 7
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
G Java Abstrakte Methoden Java Basics - Anfänger-Themen 2
T Abstrakte Klasse und Interfaces Java Basics - Anfänger-Themen 12
D Abstrakte Klasse, Konstruktorkette, Attribute setzen Java Basics - Anfänger-Themen 12
L Abstrakte Typen und Schnittstellen Java Basics - Anfänger-Themen 19
S Abstrakte Methode nutzen Java Basics - Anfänger-Themen 9
J abstrakte Methode in Klasse mit Rückgabetyp der abgeleiteten Klasse Java Basics - Anfänger-Themen 5
J Objekte und Abstrakte Klassen Java Basics - Anfänger-Themen 2
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
T Übungsaufgabe abstrakte Klasse Java Basics - Anfänger-Themen 21
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
M Erste Schritte Prüfungsbeispiel: Interface / abstrakte Klassen Java Basics - Anfänger-Themen 8
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
S Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
S Datentypen Abstrakte Datentypen Java Basics - Anfänger-Themen 0
kilopack15 Beziehung Interface - (abstrakte) Klasse -Unterklasse Java Basics - Anfänger-Themen 3
K Abstrakte Klasse: vererbte Klasse; instance of? Java Basics - Anfänger-Themen 26
A Abstrakte Datentypen - Methode delete Java Basics - Anfänger-Themen 6
N Vererbung Abstrakte Klasse stateful Java Basics - Anfänger-Themen 3
D Abstrakte Klassen Verständniss Frage Java Basics - Anfänger-Themen 4
D Methoden Abstrakte Methoden Java Basics - Anfänger-Themen 3
W Abstrakte Klasse mit Variable? Java Basics - Anfänger-Themen 2
D Interface Interfaces und abstrakte Klassen implementieren Java Basics - Anfänger-Themen 4
B Abstrakte Klassen Java Basics - Anfänger-Themen 7
C Abstrakte und virtuelle Methoden in Java Java Basics - Anfänger-Themen 4
E verdeckte abstrakte Methode sinnvoll? Java Basics - Anfänger-Themen 7
A Vererbung Abstrakte Klasse mit Methode die Objekte der Subklassen benutzt? Java Basics - Anfänger-Themen 7
W Abstrakte und konkrete Klasse Java Basics - Anfänger-Themen 4
S Abstrakte Klassen Java Basics - Anfänger-Themen 2
C Dynamische Referenz & abstrakte Klassen Java Basics - Anfänger-Themen 3
F Abstrakte Klasse doch zum "Teil" instanzieren? Java Basics - Anfänger-Themen 4
V Interface Interfaces und abstrakte Klassen Java Basics - Anfänger-Themen 3
H Abstrakte Basisklasse Verständnisproblem! Java Basics - Anfänger-Themen 8
G Abstrakte Klassen - theoretische Frage Java Basics - Anfänger-Themen 2
OnDemand Abstrakte Klassen Java Basics - Anfänger-Themen 4
T OOP Abstrakte Klassen und ihre Kinder: wie läuft das? Java Basics - Anfänger-Themen 3
M Statische Methoden in Interface/Abstrakte Klasse Java Basics - Anfänger-Themen 6
M Abstrakte Klassen Java Basics - Anfänger-Themen 2
J Interfaces Abstrakte Klassen Java Basics - Anfänger-Themen 15
M Interface und Abstrakte Klassen Java Basics - Anfänger-Themen 12
N Datentypen abstrakte Klasse wird instanziert Java Basics - Anfänger-Themen 3
D Methoden abstrakte Methoden und Rückgabewerte Java Basics - Anfänger-Themen 2
B Abstrakte Methode vs. Interface Java Basics - Anfänger-Themen 2
propra Interface - abstrakte Klasse Java Basics - Anfänger-Themen 18
N Abstrakte Klasse Java Basics - Anfänger-Themen 28
R Namenskonvention abstrakte Klassen Java Basics - Anfänger-Themen 6
C OOP Objektstruktur: abstrakte Klassen Java Basics - Anfänger-Themen 3
V Vererbung Abstrakte Methode Java Basics - Anfänger-Themen 3
T OOP abstrakte klassen - methoden Java Basics - Anfänger-Themen 8
M Abstrakte Klassen Java Basics - Anfänger-Themen 21
J Welchen Sinn haben abstrakte Methoden? Java Basics - Anfänger-Themen 4
D Wann genau abstrakte Klasse und wann ein Interface verwenden? Java Basics - Anfänger-Themen 4
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
StupidAttack Abstrakte Methoden in nicht-abstrakter Methode in abstrakter Klasse Java Basics - Anfänger-Themen 6
T Abstrakte Klasse Java Basics - Anfänger-Themen 3
S Abstrakte Klasse Java Basics - Anfänger-Themen 5
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
T OO, Konstruktor, abstrakte Methoden Java Basics - Anfänger-Themen 13
K Abstrakte Klasse vs. Interface Java Basics - Anfänger-Themen 21
T Abstrakte Klassen Java Basics - Anfänger-Themen 6
C abstrakte Klassen mögen mich nicht... Java Basics - Anfänger-Themen 2
I Abstrakte Klassen Java Basics - Anfänger-Themen 8
K Abstrakte Klasse bilden? Java Basics - Anfänger-Themen 11
S Abstrakte Klasse, festlegen, dass Methode verändert werden muss. Java Basics - Anfänger-Themen 4
D Zusammenfassung von Klassen (Vererbung? Abstrakte Klass? ...?) Java Basics - Anfänger-Themen 8
H Warum Java? | Abstrakte Klasse = Modul? Java Basics - Anfänger-Themen 20
G Abstrakte Klassen und Methoden Java Basics - Anfänger-Themen 3
C Schnittstellen und Abstrakte Klassen Java Basics - Anfänger-Themen 3
I Abstrakte Klassen Java Basics - Anfänger-Themen 22

Ähnliche Java Themen

Neue Themen


Oben