Punkt. Instanzmethode

Hornhauer100

Mitglied
Hallo,

ich bin gerade an einer Aufgabe dran und komme nun nicht mehr weiter.

Ich soll eine Instanzmethode (public void shift(double weite) schreiben, die den Punkt um die angegebenem Weite waagerecht auf der Zeichenebene verschiebt. Bin noch ein totaler Neuling und habe eventuell überlegt, ob das mit der Printf Methode geht????:L Bzw. ich verstehe auch nicht so wirklich die Aufgabenstellung :(
Momentaner Code:
Java:
package Testat2;

public class Punkt {

	private	double x ;
	private double y;
	
	public Punkt(double x, double y){
		this.x = x;
		this.y = y;
	}
	public Punkt(){
		System.out.println("Erzeugen einer Instanz der Klasse Punkt");
		System.out.println("geben Sie die x-Koordinate des Punktes an:");
		this.x = EAM.rDouble();
		System.out.println("geben Sie die y-Koordinate des Punktes an:");
		this.y = EAM.rDouble();
	}
	public double getX() {
		return x;
	}
	public double getY() {
		return y;
	}
}


Vielen Dank schon einmal für die Hilfe :)
 
Zuletzt bearbeitet:

Joose

Top Contributor
Warum gerade die "printf" Methode? Was macht denn die "printf" Methode?

Es steht doch eh genau in der Aufgabenstellung drinnen was verlangt ist du sollst eine Instanzmethode schreiben (sprich eine nicht statische Methode in der Klasse "Punkt").
In dieser Methode sollst du die Werte x bzw. y anpassen.
 

Hornhauer100

Mitglied
Also sozusagen, an welchem Punkt im "Koordinatensystem" mein X bzw. Y Punkt sein soll?
Aber mit welchem Befehl kann man denn diesen Punkt verschieben? Oder muss ich nur den X/Y Punkt eine Variable zuweisen? :eek:
 

Hornhauer100

Mitglied
Aber eigentlich werden die Koordinaten doch schon durch die Abfrage System.out.println angepasst, in dem ich dort abfrage, wo die x/y Koordinate ist? :eek:
Ich glaube ich gebe es einfach auf :(
 

Hornhauer100

Mitglied
Okay, habe mich jetzt mal versucht, glaube aber nicht, dass es wirklich richtig ist :/

Java:
	public void shift(double weite){
		System.out.println("Bitte geben Sie an, wie weit die x-Koordinate verschoben werden soll");
		weite = EAM.rDouble(); //EAM = internet Funktion unserer Uni zur Speicherung von Variablen etc.
		
		weite = weite + x;
	}
 

VfL_Freak

Top Contributor
Moin,

Okay, habe mich jetzt mal versucht, glaube aber nicht, dass es wirklich richtig ist :/
Sorry, aber ich auch nicht ;)

Java:
public void shift(double weite)
{
     System.out.println("Bitte geben Sie an, wie weit die x-Koordinate verschoben werden soll");
     weite = EAM.rDouble(); //EAM = internet Funktion unserer Uni zur Speicherung von Variablen etc.
     weite = weite + x;
}
Du sollst doch die Weite an die Funktion übergeben ... warum also innerhalb nochmal abfragen?
Sodann soll ja der 'x'-Wert verschoben und nicht die Weite .....

Also, warum nicht einfach so ??
Java:
public void shift(double weite)
{
     x +=weite;
}

Gruß
Klaus
 
Zuletzt bearbeitet:

Hornhauer100

Mitglied
ok danke :)

und wenn der Punkt bei Positiven Zahlen nach rechts und bei negativen Zahlen nach links verschoben werden soll, würde das doch einfach mit einer if else verzweigung gehen?

Java:
	public void shift(double weite){
		if(x > 0){
			x = x + weite;
		} else 
			x = x - weite;
		
	}
 

VfL_Freak

Top Contributor
Warum??

x += weite reicht doch völlig!

sei x = 10
bei "weite 5" ==> 15
bei "weiter -5" ==> 5 (da 10 + -5 = 5)

Simpelste Mathematik :bae:

Gruß
Klaus
 
Zuletzt bearbeitet:

Hornhauer100

Mitglied
ok, vielen Dank euch. Das ergibt Sinn :(
Irgendwie denke ich immer zu kompliziert bzw. muss mich in die Logik von Java besser einarbeiten, damit ich wenigstens die Grundlagen irgendwann mal verstehen werde >:<
 

Neue Themen


Oben