2008-10-07 4 views

Antwort

5

In meiner Ansicht Array-Klasse ist im Grunde eine Klasse Darstellung der festen Größe Arrays, die wir mit [] im Programm deklarieren (Sie können die Analogie wie int hat es ist die Klasse (Struktur) Darstellung als System.Int32).

Auch Array-Klasse enthält nicht die tatsächlichen Array-Daten in jeder Instanz Variablen, aber es bietet nur statische Dienstprogrammfunktionen, die zum Sortieren und Suchen in den angegebenen Arrays fester Größe verwendet werden können.

Auf der anderen Seite ist ArrayList eine Auflistungsklasse, die eine dynamische Größenmatriximplementierung bereitstellt und über eine eigene Datenstruktur verfügt, um die Daten zu enthalten. Daher sind die genannten Methoden Instanzmethoden, so dass sie an den Daten dieser bestimmten Instanz arbeiten können.

3

Eine Collection-Klasse wie ArrayList kapselt eine Art internen Speicher (vermutlich ein Array, dessen Größe bei Bedarf geändert wird, aber es könnte auch eine verkettete Liste oder eine andere Implementierung sein). Metoden wie IndexOf und Sort benötigen Zugriff auf den zugrunde liegenden privaten Speicher, um effizient zu sein, also müssen sie instace-Methoden sein.

Eine Array auf der anderen Seite ist nicht gekapselt, gibt es öffentlichen Zugriff direkt auf den Speicher. Die Methoden Array.IndexOf und Array.Sort benötigen keinen speziellen Zugriff auf die Array-Daten, daher können sie auch statische Metoden sein.

+0

Sie könnten genauso gut Mitgliedermethoden sein, richtig? int könnte auch in integer umbenannt werden, da es für Nicht-Programmierer besser lesbar ist, richtig? – strager