Samstag, 22. Oktober 2016

11/1 Inf Felder Überblick

Was sind Felder?

  • statische Speicherstruktur
  • Bestehen aus Elementen (nummeriert von 0 bis x)
  • In jedem Element befindet sich ein Verweis (ein "Link") auf ein bestimmtes Objekt
  • Ist kein Objekt in einem Element gespeichert, verweist es auf "null" (Nichts)
Ein Feld erzeugen (in BlueJ)

1. Globale Variable implementieren (-> eine Variable eines bestimmten Datentyps, die in jeder Methode der Klasse verwendet werden kann, wird "erzeugt")

private int[]feld;
private Datentyp[] Bezeichner;

2. Größe des Feldes (=Anzahl der Elemente) im Konstruktor deklarieren (-> der Variable wird im Konstruktor, der Methode, die ein Objekt der Klasse erzeugt, ein bestimmter Wert zugeordnet)

public Feld()
{
   feld = new int[10];
}
public Klassenname()
{
     Bezeichner = new Datentyp[Anzahl der Elemente];
}

Mit Feldern arbeiten(in BlueJ)

Ein Feld "per Hand" füllen (-> bestimmten Elementen werden bestimmte Werte zugeordnet)

public void feldFüllen()
{
   feld[0] = 1;
   feld[1] = 1;
   feld[2] = 2;
}
public Rückgabedatentyp Methodenname()
{
    Bezeichner[Nummer des Elements] = Objekt/Zahl/Text;
}

Ein Feld mithilfe einer for-Schleife füllen (-> einer Reihe von Elementen werden bestimmte Werte zugeordnet)

public void feldFüllen()
{
   for(int i; i<feld.length; i++)
   {
      feld[i] = i;
   }
}
public Datentyp Methodenname()
{
    for(int i; Bedingung; i++)
    {
        Bezeichner[i] = Objekt/Zahl/Text;
    }
}

// Beispiel oben: alle Elemente (egal wie viele) werden mit der Zahl, die der Nummer des Elements entspricht, gefüllt. Bezeichner.length gibt automatisch die Länge des Feldes zurück. Mithilfe der Bedingung kann man aber auch nur die ersten zwei oder die Hälfte der Elemente etc. füllen.

Weitere Methoden als Beispiel:


public int auslesen(int elem)

{
  if(elem <= feld.length)
  {
    System.out.println("Im Element mit Nummer     " + elem + " steht " + feld[elem] + ".");
  }
  else
  {
    System.out.println("Das eingegebene Feld     existiert nicht.");
  }
  return feld[elem];

// die Methode gibt am Bildschirm den Wert (feld[elem]) des eingegebenen Elements (elem) aus (hier eine Zahl).

public void elementeVertauschen(int elem1, int elem2)
{
  int ergebnis1 = feld[elem1];
  int ergebnis2 = feld[elem2];
  feld[elem1] = ergebnis2;
  feld[elem2] = ergebnis1;
}

// die eingegebenen Elemente elem1 und elem2 werden vertauscht, d.h. was vorher in elem1 stand, ist nun in elem2 und umgekehrt. Da die Werte überschrieben werden, muss man die Werte "zwischenspeichern" (in ergebnis1 und ergebnis2).

Ich hoffe, das verschafft euch einen kleinen Überblick über Felder als Speicherstruktur. Ich habe diesen Post geschrieben, weil ich bald eine Kurzarbeit über das Thema schreibe und mir so noch einmal alles ins Gedächtnis rufen kann.
Fragen/Wünsche für den nächsten Post bitte in die Kommentare, ihr braucht dazu keinen Account ;)

Keine Kommentare:

Kommentar veröffentlichen