Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
ich möchte eben eine Kollision zwischen 1 Objekten das sich frei bewegt und einem Objekt das man per Knopf druck bewegen kann programmieren, aber dann stimmt die x und y Koordinate nicht, da sie immer noch die gleiche ist, wie am AnfangDu kannst etwas public machen. Dann ist es von außen zugreifbar.
Wenn etwas static ist, dann ist keine Instanz der Klasse notwendig.
Das sind aber Dinge, die gut durchdacht sein sollen.
a) Zugriff auf Variablen sollte man generell nicht nach außen geben. Das nennt sich Kapselung und ist ein wichtiges Konzept in der objektorientierten Entwicklung.
b) Static Elemente widersprechen dem objektorientierten Ansatz. Daher sollte man auf diese auch verzichten, wenn möglich. Üblich sind also, dass man nur die main Methode und sogenannte Konstanten als static hat. (Konstanten mein "public static final ..... " Variablen.)
Dann ist irgendwas falsch. Zeig Deinen Code, dann kann man schauen, wo der Fehler ist.aber dann stimmt die x und y Koordinate nicht, da sie immer noch die gleiche ist, wie am Anfang
Nein. Es gibt verschiedene Möglichkeiten:Also müsste ich das Rechteck und der Kreis in die gleiche Klasse reinschreiben?
da ich nicht ganz verstehe wie sie das meinenkönnten sie mir es anhand eines Beispiel zeigen?
wie kann ich die Parameter der Methode geben?Nein. Es gibt verschiedene Möglichkeiten:
a) die Klasse Kreis prüft, ob eine Kollision mit einem Rechteck vorliegt, dann erhält die betreffende Methode das Rechteck als Parameter (analog würde dies für Klasse Rechteck gelten, nur umgekehrt).
b) die Klasse aus Deinem Kommentar #5 prüft, ob eine Kollision zwischen zwei Objekten (Kreis und Rechteck) vorliegt. Diese Klasse kennt den Kreis und das Rechteck bereits.
So wie jeden anderen Parameter auch.wie kann ich die Parameter der Methode geben?
//Annahme, es handelt sich um ein Werkzeug in einer externen Klasse.
class Werkzeugklasse {
public static boolean kolobj(Kreis kreis, Rechteck rechteck) {
...;
}
}
//Aufruf:
irgendeineMethode(){
Kreis meinKreis = ...;
Rechteck meinRechteck = ...;
boolean esGibtKollision = Werkzeugklasse.kolobj(meinKreis, meinRechteck);
}