java-forum.org - Java programmieren aus Leidenschaft

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Java - Programmierung > Java Basics - Anfänger-Themen

Java Basics - Anfänger-Themen Fragen ausschließlich zu Java-Grundlagen von Ein- und Umsteigern

Thema geschlossen    
Themen-Optionen Thema durchsuchen Ansicht
Alt 15.05.2007, 14:37   #1 (permalink)
Benutzer
int
 
Registriert seit: 22.10.2006
Fachbeiträge: 39
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Frage zu Rückgabewert List und ArrayList

Hallo,

bin mal wieder mit dem Selbststudium eines Buches beschäftigt. Da beginnt eine Einkaufswagen-Datenstruktur-Klasse folgendermaßen:
Code:
public class Shopping Cart
{
	private ArrayList itemsOrdered;

	public ShoppingCart()
	{
		itemsOrdered = new ArrayList();
	}

	public List getItemsOrdered()
	{
		return itemsOrdered;
	}

	[...]
}
Über der getItemsOrdered()-Methode wird im Buch kommentiert: „Als Rückgabe wurde List anstelle von ArrayList deklariert, so dass die zugrunde liegende Implementierung bei Bedarf jederzeit problemlos geändert werden kann.“

Nun wollte ich hier mal nachfragen, wie das gemeint ist. Kann mir jemand vielleicht ein Beispiel nennen, wie sich die Implementierung unter Nutzung des Rückgabewertes List ‚problemlos ändern’ lässt?

Danke, danke, für Antworten!
KleinerEisbaer ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 15.05.2007, 14:41   #2 (permalink)
Stammbenutzer
Halbes Gigabyte
 
Registriert seit: 02.12.2003
Fachbeiträge: 5.472
Abgegebene Danke: 0
Erhielt 3 Danke für 3 Beiträge
Such mal nach einem Kapitel über Interfaces, vielleicht wirds dann klarer... (je nach Qualität des Buches)
__________________
Andy Clarke is hip and mature. You almost never get both. He is a seasoned brand steward, a fancy pixel wrangler, and no mean hand at code. A triple talent. The bastard. - Jeffrey Zeldman
http://www.alexander-langer.de
AlArenal ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 15.05.2007, 14:48   #3 (permalink)
Stammbenutzer
Viertel Gigabyte
 
Benutzerbild von byte
 
Registriert seit: 17.06.2005
Fachbeiträge: 4.593
Blog-Einträge: 1
Abgegebene Danke: 7
Erhielt 23 Danke für 21 Beiträge
Herzlichen Glückwunsch. Du bist auf eines der grundlegendsten Konzepte der objektorientierten Programmierung gestoßen. Jetzt musst Du es nur noch kapieren!

List ist ein Interface und definiert einheitliche Methoden zum Umgang mit Listen. ArrayList ist eine konkrete Implementierung dieses Interfaces. Es gibt noch weitere Implementierungen, z.B. LinkedList. Wenn der Rückgabewert List ist und nicht ArrayList, dann lässt man es also offen, welche Implementierung von List gewählt wird. Es kann Dir auch vollkommen egal sein, weil durch das gemeinsame Interface sichergestellt ist, dass Du alle Implementierungen einheitlich behandeln kannst.
byte ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 15.05.2007, 14:49   #4 (permalink)
Stammbenutzer
Halbes Megabyte
 
Registriert seit: 28.03.2007
Fachbeiträge: 718
Abgegebene Danke: 0
Erhielt 1 Danke für 1 Beitrag
Um bei deinem Beispiel zu bleiben:

Code:
public class ReadOnlyShoppingCart extends ShoppingCart
{
   public List getItemsOrdered()
   {
      return Collections.unmodifiableList(super.getItemsOrdered());
   } 
 [...]
}
Ich hoffe Klassenname und Zweck sind selbsterklaerend.
kleiner_held ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 15.05.2007, 16:26   #5 (permalink)
Benutzer
int
Themenstarter
 
Registriert seit: 22.10.2006
Fachbeiträge: 39
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Ok, bis hierhin schon mal vielen Dank! Habe das verstanden.
Mag mir jetzt noch einer kurz (vielleicht in zwei, drei Sätzen) erklären, wo der Unterschied zwischen diesen ganzen Listen ist, ohne dass ich die API wälzen muß? Bzw. wo vielleicht auch die Gemeinsamkeiten liegen, wobei, ok, die liegen eben in den Interface-Methoden von List.
Danke nochmals!
KleinerEisbaer ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 15.05.2007, 16:52   #6 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von SlaterB
 
Registriert seit: 13.11.2005
Fachbeiträge: 32.005
Abgegebene Danke: 0
Erhielt 2.620 Danke für 2.580 Beiträge
ArrayList benutzt intern ein Array,
LinkedList ist eine verkettete Liste

wenn dir verkettete Liste nix sagt, dann schaue bitte bei google nach,
das sind ein paar Sätze mehr
SlaterB ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 16.05.2007, 05:45   #7 (permalink)
Benutzer
int
Themenstarter
 
Registriert seit: 22.10.2006
Fachbeiträge: 39
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Ok, danke und merci!
KleinerEisbaer ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Thema geschlossen    

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
unterschied list und arraylist? dermoritz Java Basics - Anfänger-Themen 11 21.05.2008 16:15
LinkedList, Collection, ArrayList, List. was denn bitte? julchen81 Java Basics - Anfänger-Themen 6 25.02.2008 07:55
List einer ArrayList zuweisen. Java Basics - Anfänger-Themen 5 20.12.2007 07:32
Arraylist statt List - Sehr schlimm? Allgemeine Java-Themen 8 16.08.2007 11:26
List / ArrayList übergen Destiny1985 Java Basics - Anfänger-Themen 6 30.06.2005 10:58


Lesezeichen

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:41 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de