Methode verstehen

Joerg46

Mitglied
Hi, ich soll die folgende Methode, welche den Umfang eines Polygons berechnen soll, erklären. Vielleicht könnte mir einer kurz schreiben was in und wie diese Methode funktioniert.

Java:
 public double getUmfang() {
        double umfang = 0;

        GeoPoint last = null;
        for(GeoPoint p : this.punkte) {
            if(last == null) {
                last = p;
            } else {
                umfang += last.getDistanceToOther(p);
                last = p;
            }
        }

        umfang += punkte.get(punkte.size()-1).getDistanceToOther(punkte.get(0));
        return umfang;
    }
 
EDIT: Hab überlesen, das die Erklärung ja deine Aufgabe ist und sie darum wieder entfernt.

Womit hast du denn Probleme? Gibt es eine spezielle Stelle, die du nicht verstehst? Kannst du wenigstens einen Teil der Methode erklären?

Ansonsten, geh die Methode Zeile für Zeile durch und notiere dir auf einem Papier den Inhalt der Variablen. Spätestens beim zweiten Element der Schleife, solltest wissen was passiert.
Code:
umfang = 0

last = null

Schleife: p = erster Punkt

Ist last = null? Dann wird last = ?

...
 
Zuletzt bearbeitet:
Ja Problem ist das Verständnis von null (eine Refenrenz?) und die Klammer in der for-Schleife?
Die Variable "last" ist vom Typ "GeoPoint" und damit ein Objekt (bzw. die Referenz auf ein Objekt). Einer primitiven Variablen wie "umfang" kannst du als Initialwert z.B. den Wert 0 zuweisen, das geht bei einem Objekt nicht. Dafür gibt es aber "null", d.h. die Variable enthält, sozusagen - nichts.

Auf ein solches Objekt kann auch keine Instanzmethode aufgerufen werden, es existiert ja nicht:
Java:
GeoPoint last = null;

last.getDistanceToOther(p); // !!!NullPointerException!!!

Welche Klammer in der for-Schleife?
 

Zurück
Oben