Was macht diese Zeile?

Bitte aktiviere JavaScript!
Mich würde interessieren was n=y*r.x macht. Mir geht es insbesondere um die Punktnotation zwischen dem r und x. Was bedeutet so ein Punkt?
 
Das heißt, das die Klasse ein öffentlich sichtbares Feld x hat. Beispiel:

Java:
public class PublicMemberClass{
    public int x;
}
Mit dem Punkt greifst du auf das int x einer bestimmten Instanz dieser Klasse zu. Oder auch auf Methoden.
 
Naja, zumindest sichtbar aus dem jeweiligen Kontext heraus. Ich glaube bei der Frage aber nicht, daß der TO hier mit komplexeren Kapselungen herumzaubert. (Nicht böse gemeint.)
 
Ok, also es haben sich da einige Fehler eingeschlichen die man beheben soll. Mir geht es nicht um die Fehler sondern um die Punktnotation. Wenn int x,y Instanzvariablen und ich auf diese zugreifen will geht das über die Punktnotation? Das ergibt sich mir irgendwie nicht ganz. Dachte man verwendet diese notation nur um auf methoden aus anderen Klassen zugreifen zu wollen?

Woher weiß man überhupt das Comparable ein Interface ist und folglich es class Rational implements Comparable sein muss. Es ist doch gar kein Code davon vorhanden? Oder muss man das erschließen indem man die Codezeile liest mit extends=ist ein was kein Sinn macht in dem Zusammenhang -> ersetzen durch implements=hat die Eigenschaft (macht eher Sinn).
 

Anhänge

Du kannst auf die Elemente der Klasse zugreifen, die an der Stelle sichtbar sind. Also auch Felder.
Das Feld x ist zwar private, aber da der Code in der Klasse selbst ist, hast du da auch Zugriff auf die private Elemente.
 
Woher weiß man überhupt das Comparable ein Interface ist und folglich es class Rational implements Comparable sein muss.
Naja...vererbt wird mit extends (Klasse x erweitert y), implementiert wird mit implements (Klasse x baut y ein).

Extends drückt definitiv eine Ist-ein-Beziehung aus. Hund erbt von Tier -> Hund ist ein Tier.

Interfaces dagegen sind eine Erweiterung, daher enden deren Bezeichnungen ja häufig auf 'able'. Manche Tiere sind z.B. schwimmfähig (und implementieren daher das Interface Swimable, bzw. Schwimmfähig).
 
Ich glaube, sein Punkt war, dass aus der Aufgabenbeschreibung bzw. dem gegebenen Code nirgendwo hervorgeht, dass Comparable (bzw. java.lang.Comparable) eigentlich ein Interface ist und damit wohl das Schlüsselwort `extends` falsch sein könnte.
Es könnte aber gut und gerne auch eine eigene, selbstgeschriebene Klasse gemeint sein, die nicht gezeigt wurde, die ebenfalls eine abstrakte compareTo(Object) Methode deklariert.
Dadurch, dass man Klassen aus `java.lang` aber nicht manuell importieren muss und eben kein Code einer Comparable Klasse gegeben ist, halte ich es für am wahrscheinlichsten, dass `extends` falsch ist und durch `implements` ersetzt werden sollte.
 
Da kommt heute aber öfter mal jemand mit kaputtem Code in den Übungsaufgaben.
 
Passende Stellenanzeigen aus deiner Region:

Oben