# Klasse programmieren



## Mariele (8. Nov 2011)

Hallo!

Für mein Studium muss ich eine Klasse programmieren und habe gar keine Ahnung wie das geht, weil ich vorher noch nie programmiert habe. Ich habe den Quelltextegeben und soll nun die Klasse dafür schreiben. Für Hilfe wäre ich sehr dankbar!



```
public class Beispiel {
public static void main(String[] args) {
Punkt punkt1 = new Punkt(); // Instanz der Klasse Punkt erzeugen
punkt1.xKoordinate = 3.; // Koordinaten belegen
punkt1.yKoordinate = 4.;
// Ausgabe der Koordinaten
System.out.println("x-Koordinate: " + punkt1.xKoordinate);
System.out.println("y-Koordinate: " + punkt1.yKoordinate);
double b = punkt1.berechneAbstandVomNullpunkt(); // b sollte 5.0 sein
System.out.println("Abstand zum Nullpunkt ist " + b);
Punkt punkt2 = new Punkt(); // zweite Instanz erzeugen
System.out.println("Bitte geben Sie die x-Koordinate ein:");
punkt2.xKoordinate = Tastatureingabe.leseDouble();
System.out.println("Bitte geben Sie die y-Koordinate ein:");
punkt2.yKoordinate = Tastatureingabe.leseDouble();
Punkt punkt3 = new Punkt(); // dritte Instanz erzeugen
System.out.println("Bitte geben Sie die x-Koordinate ein:");
punkt3.xKoordinate = Tastatureingabe.leseDouble();
System.out.println("Bitte geben Sie die y-Koordinate ein:");
punkt3.yKoordinate = Tastatureingabe.leseDouble();
// Ausgabe der Koordinaten für den 2. Punkt
System.out.println("x-Koordinate: " + punkt2.xKoordinate);
System.out.println("y-Koordinate: " + punkt2.yKoordinate);
b = punkt2.berechneAbstandVomNullpunkt();
System.out.println("Abstand zum Nullpunkt ist " + b);
// Ausgabe der Koordinaten für den 3. Punkt
System.out.println("x-Koordinate: " + punkt3.xKoordinate);
System.out.println("y-Koordinate: " + punkt3.yKoordinate);
b = punkt3.berechneAbstandVomNullpunkt();
System.out.println("Abstand zum Nullpunkt ist " + b);
b = punkt1.berechneAbstandZuPunkt(punkt2); // Abstand der Punkte zueinander
System.out.println("Der Abstand zwischen den Punkten 1 und 2 beträgt: " + b);
b = punkt3.berechneAbstandZuPunkt(punkt1); // Abstand der Punkte zueinander
System.out.println("Der Abstand zwischen den Punkten 3 und 1 beträgt: " + b);
double strecke = 3.;
double richtung = 60.; // Angabe in Grad:
// 0 Grad entspricht Verschiebung in x-Richtung
// 90 Grad entspricht Verschiebung in y-Richtung
Punkt punkt4 = punkt1.verschiebeUm(strecke, richtung);
// Ausgehend vom Punkt punkt1 wird ein neuer Punkt
// erzeugt, der von punkt1 in Richtung richtung in
// der Entfernung strecke liegt.
// Die Koordinaten von punkt1 werden nicht verändert!
System.out.println("Neuer Punkt:");
// Ausgabe der Koordinaten für den 4. Punkt
System.out.println("x-Koordinate: " + punkt4.xKoordinate);
System.out.println("y-Koordinate: " + punkt4.yKoordinate);
Punkt punkt5 = punkt3.verschiebeUm(7.5, 30.);
System.out.println("Neuer Punkt:");
// Ausgabe der Koordinaten für den 5. Punkt
System.out.println("x-Koordinate: " + punkt5.xKoordinate);
System.out.println("y-Koordinate: " + punkt5.yKoordinate);
}
}
```


----------



## Landei (8. Nov 2011)

Den Quelltext einzugeben ist dasselbe wie "die Klasse zu programmieren". Kann es sein, dass du sie stattdessen _kompilieren_ sollst? Das geht auf der Kommandozeile mit dem Java-Compiler javac oder mit einer IDE (NetBeans, Eclipse, IntelliJ IDEA,...).


----------



## Mariele (8. Nov 2011)

Implementieren Sie die Klasse Punkt. Der Quelltext in der Datei Beispiel.java
darf nicht verändert werden. Definieren Sie die Daten und Methoden der Klasse
Punkt. Die Methoden sollen dabei die aus den Kommentaren zu entnehmenden
Funktionalitäten richtig umsetzen. Bei richtiger Implementierung der Klasse Punkt
lässt sich die Datei Beispiel.java kompilieren und ausführen.

Das ist die Aufgabenstellung...wie gesagt, ich hab keinen Schimmer was ich machen soll.
Wir verwenden Eclipse.


----------



## Landei (8. Nov 2011)

Ach sooo, du sollst eine _andere_ Klasse programmieren. 

Da du schon durch die Klasse Beispiel schon eine "Vorgabe" hast, kannst du ganze einfach erst mal mit einer leeren Klasse Punkt anfangen:


```
public class Punkt {
}
```

Dann versuchst du das ganze zu kompilieren, und "reparierst" Schritt für Schritt die Fehler, die dir der Compiler anzeigt (z.B. wird er meckern, dass Punkt kein xKoordinate und so hat).

Wie das mit dem Kompilieren geht, wurde hier im Forum schon x-mal beschrieben (wahrscheinlich auch in der FAQ)


----------



## qowaz (8. Nov 2011)

Wenn du davon schon keinen Schimmer hast, solltest du dir vllt. erst mal ein paar Grundlagen zu Java und der objektorientierten Programmierung durchlesen.
Es bringt dir wenig wenn dir hier jemand die Aufgabe löst und du überhaupt nicht verstehst was da passiert.


----------



## chalkbag (8. Nov 2011)

Grüß dich,

wenn du eine gute IDE wie Eclipse hast, dann kannst das wie Landei beschrieben hat, quasi Test-Driven machen.

Wenn du das nicht hast, kannst du ja einfach mal den vorhanden Code durchgehen, ich mach mal ein paar Beispiele



System.out.println("x-Koordinate: " + punkt1.xKoordinate);
System.out.println("y-Koordinate: " + punkt1.yKoordinate);
die Klasse Punkt hat die public Attribute xKoordinate und yKoordinate (Typ noch unbekannt)

double b = punkt1.berechneAbstandVomNullpunkt(); // b sollte 5.0 sein
ah also sind die Koordinaten wohl am besten vom Typ double
zusätzlich hat die Klasse eine Methode berechneAbstandVomNullPunkt()

System.out.println("Abstand zum Nullpunkt ist " + b);
Punkt punkt2 = new Punkt(); // zweite Instanz erzeugen
System.out.println("Bitte geben Sie die x-Koordinate ein:");
punkt2.xKoordinate = Tastatureingabe.leseDouble();
hier wird der public Variablen der eingelesen Wert zugewiesen (ich denke die Klasse Tastatureingabe hast du)
...
b = punkt1.berechneAbstandZuPunkt(punkt2); // Abstand der Punkte zueinander
die Klasse Punkt hat eine Methode berechneAbstandZuPunkt(Punkt punkt2)
Idee, diese Methode berechenAbstandVomNullPunkt verwenden mit ...
Punkt punkt4 = punkt1.verschiebeUm(strecke, richtung);
es gibt also in der Klasse Punkt die Methode verschiebeUm(Strecke, richtung), hier musst du dir noch geeignete Typen für die Argumente überlegen


----------

