Konstruktor übernimmt keine Parameter

MissPiggy

Erfahrenes Mitglied
Ich habe vor kurzem mit Java angefangen, mangels vernünftiger Tutorials nutze ich verschiedene Bücher als Grundlage. Aus einem stammt eine Übung zu Punkten und Linien - dazu wird eine Klasse Point erstellt die als Konstruktor lediglich aus

public void point (double x, double y){
this.x=x;
this.y=y;
}

besteht. Dennoch kann dieser Konstuktor nur ohne Parameter aufgerufen werden was aber laut dem entsprechenden Buch möglich sein sollte - mit Point somepoint = new Point (x,y). Ist in dem Buch ein Fehler vorhanden ?
 
In einem anderen Tutorial ist etwas ähnliches beschrieben, hier wird allerdings dem Konstruktor nichts vorangestellt. Dann zeigt die Entwicklungsumgebung auch keinen Fehler an. Das Aufrufen ohne Konstruktor geht dann auch nicht mehr (das ist nur möglich wenn die Klasse Point aus java.awt genutzt wird, bisher ist es mir jedoch noch nicht gelungen die Klasse zu importieren und dennoch den eigenen Konstruktor verwenden zu können.
 
Den letzten Satz würde ich gerne noch etwas genauer wissen: wie meinst Du das, mit dem eigenen Konstruktor? Also in welcher Verbindung stehen die Klasse aus AWT und Deine eigene Klasse?
 
(
Kurz dazwischen zum Code ganz oben:
a) Das "void" weg
b) Für die Klase Point geht kein Konstruktor point
)
 
Sie soll von Point erben, und je nachdem ob Parameter übergeben werden oder nicht entweder den eigenen oder den Konstruktor der Elternklasse verwenden.

edit - die Klasse heisst eigentlich MyPoint (soll von Point erben), dort ist sie großgeschrieben das verursacht die Probleme auf jeden Fall nicht.
 
Ok danke nochmal euch, das Problem lag woanders, ich hatte die Fehlermeldung erst falsch interpretiert - das funktioniert, der Fehler wurde von der Tatsache verursacht dass, obwohl der Wert mit 5.3 ausgegeben wird er mit 5,3 eingegeben werden muss....
 
Das klingt nicht richtig.

5,3 entspricht: 5, 3 -> zwei unterschiedliche Werte
5.3 entspricht: 5.3 -> ein Wert

5, 3 sind zwei Integerwerte, 5.3 ist ein floating point wert.

Die Aussage "Aufrufen ohne Konstruktor" klingt auch falsch. Du kannst in Java nur Objekte "ohne Konstruktor" erstellen, wenn es primitive Datentypen sind. Meinst du einen Konstruktor ohne Parameter? Also:
Java:
Point pt = new Point();

Wenn du das willst musst halt einfach ein entsprechender Konstruktor vorliegen, der keine Parameter erwartet:
Java:
class Point {
     private double mPosX, mPosY;

     public Point() { mPosX = mPosY = 0.0; }
     public Point(double x, double y) { mPosX = x; mPosY = y; }
}

Jetzt kannst du sowohl Point pt = new Point(); als auch Point pt = new Point(5.3, 2.4); verwenden.
 
Bei der Eingabe in Netbeans wird ein Komma statt einem Punkt erwartet um eine Fliesskommazahl einzugeben. Ansonsten wird sie nicht als solche erkannt, bei der Eingabe mit Komma als Trennzeichen lässt sich der Wert aber wie gewünscht weiterbehandeln, die Ausgabe des Werts erfolgt dann mit Punkt als Trennzeichen.

Da ich keinen neuen thread öffnen will noch eine kurze Frage - wenn ich das bereits kompilierte Programm in der Kommandozeile aufrufen will findet er die Klasse nicht wenn ich versuche es aus dem Ordner heraus zu öffnen in dem sich die Hauptklasse befindet. Welcher Ordner muss hier gewählt werden ? (Als .jar Datei lässt sich das Programm aus der Konsole starten) .
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück