Bitte um Erklärung

Jehudiel

Mitglied
Hallo,

folgendes mir ist nicht ganz klar weshalb bei folgendem Programm:

Java:
import java.awt.Point;


public class Abstand 
{
    
    public static void main(String[] args) 
    {
        Point[] points = { new Point(10, 20), new Point(12, 2), new Point(44, 4) };
        double merker = 0;
        
        for (int x = 0 ; x < points.length; x++)
        {
            Object testpunkt = points[x];
            double abstand = Math.sqrt( testpunkt.x * testpunkt.x + testpunkt.y * testpunkt.y );
            if ( abstand > merker) merker = abstand;
        }
        
        System.out.print(merker);
    }
}
testpunkt.x/y mir nicht die x/y Koordinate liefert sondert einen Fehler erzeugt. Das ganze sollte eigentlich eine kleine Harmlose Übung sein aus "Java ist auch eine Insel" stellt mich nun aber vor eine so großes Rätsel das ich grade nicht mehr weiter weis. Falls jemand die Muse hat mir das zu erklären wäre ich dankbar.

mfg Jehudiel

ps. ich möchte keine Lösung wie man das anderes Umsetzten könnte sondern verstehen wieso es so nicht geht.
 

Saheeda

Top Contributor
Weil testpunkt vom Typ Objekt ist, das keine Methode oder Variable "x" hat. Wenn du auf die Koordinaten zugreifen möchtest, musst du den Wert direkt einem Punkt zuweisen, keinem Objekt und dann über getX() und nicht nur x:


Java:
Point testPunkt = points[x];

testPunkt.getX();

EDIT:
Zu spät gesehen, dass es die jawa.awt-Klasse ist.
 
Zuletzt bearbeitet:

Jehudiel

Mitglied
Du hast recht wenn ich statt Object Point schreibe klappt alles so wie ich es mir vorgestellt habe.

Und ja die Klasse ist von mir geschrieben dachte das erkennt man auch weil die wie ich schätze eher mäßig ist von der Effizienz.

Ich ging davon aus das das Schlüsselwort Objekt dafür sorgt das das neu erschaffene Objekt bei der Zuweisung den Typ annimmt der diesem zugewiesen wird. Wenn das nicht der Fall ist was ja ganz offensichtlich der Fall ist sonst hätte es ja geklappt was ist da geschrieben hatte.
Welche Wirkung hat dann das Schlüsselwort Object ?
 
Zuletzt bearbeitet:

Saheeda

Top Contributor
Das geht in Richtung Vererbung.

Jede Klasse (auch die von dir geschriebenen) erbt von Object, selbst wenn es nicht explizit dabei steht. Damit besitzt jede Instanz ein paar Basiseigenschaften und Methoden, z.B. eine toString - Methode.

Die Point-Klasse erweitert das allgemeine Objekt um Eigenschaften, die ein Punkt halt so braucht.
Der Compiler kann aber nicht wissen, dass du eigentlich lieber einen Punkt, als ein Objekt hättest und stellt dir deswegen nur die allgemeinen Methoden bereit. Du könntest es jetzt sagen. "Lieber Compiler, ich weiß es besser als du, wandle das Objekt bitte in einen Punkt um." durch casten:

Java:
((Point)testPunkt).getX();

Aber das ist a) schwerer zu lesen und b) "von hinten durch die Brust".

Wenn du den Wert des Arrays direkt einem Punkt zuweist, erkennt das auch die IDE (z.B. Eclipse oder Netbeans) und zeigt dir direkt, wenn was nicht stimmt. Du musst nicht umständlich hin und her Typen umwandeln.

Jeder Punkt ist ein Objekt, aber nicht jedes Objekt ist ein Punkt.


Wenns dich interessiert:
Object (Java Platform SE 7 )
Das ist die Basisklasse für alles (außer primitive Typen), der "Urschleim".

public class Object
Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of this class.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
W FileReader - Bitte um Erklärung Java Basics - Anfänger-Themen 7
C Polymorphie - Erklärung bitte Java Basics - Anfänger-Themen 5
M Erklärung Code Mergesort Bitte Java Basics - Anfänger-Themen 3
N While Schleife Erklärung Bitte Java Basics - Anfänger-Themen 3
H Methoden Bitte um Erklärung der askString-Methode Java Basics - Anfänger-Themen 15
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
R Vererbung Bitte um Erklärung - Instanzvariablen Java Basics - Anfänger-Themen 8
G Bitte um Erklärung Java Basics - Anfänger-Themen 9
J Bitte um Erklärung für einen Java-Ausdruck Java Basics - Anfänger-Themen 8
R Erklärung bitte Java Basics - Anfänger-Themen 3
tobiasbeil Fehler array initialisierung. Nur erklärung bitte. Java Basics - Anfänger-Themen 2
D Eine Erklärung für eine 3D-Schleife bitte. :) Java Basics - Anfänger-Themen 4
S Bitte Ratschläge für Console-MenuFührung... Java Basics - Anfänger-Themen 20
ineedhelpinjava OOP Bitte wichtig Java Basics - Anfänger-Themen 6
G Bitte meinen Account löschen Java Basics - Anfänger-Themen 1
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
Vivien Bitte um Optimierungsvorschläge / Verbesserungsvorschläge / allgemeines Feedback Java Basics - Anfänger-Themen 8
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15
J Java List, bitte um Hilfe Java Basics - Anfänger-Themen 3
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
ZH1896ZH OOP Verstehe nicht was der Hinweis bedeutet, bitte um Hilfe! Java Basics - Anfänger-Themen 2
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
S Bitte Hilfe zu Fehlermeldung am Handy Java Basics - Anfänger-Themen 2
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
P Bitte Hinweise zu folgendem "Klassenproblem" Java Basics - Anfänger-Themen 3
M Bitte um Hilfe bei Quellcode (Rekursion) Java Basics - Anfänger-Themen 6
A Erste Schritte Bitte helfen sie mir diese Programm zu schreiben Java Basics - Anfänger-Themen 12
C Stack und Queue in Aktion (Bitte Hilfe für die Klausur) Java Basics - Anfänger-Themen 7
F (Eclipse) Beim importieren etwas fehlerhaft bitte um Hilfe :) Java Basics - Anfänger-Themen 3
B MVC Struktur mit mehreren Szenen - wer schaut mal bitte drüber? Java Basics - Anfänger-Themen 2
T Bitte um Hilfe Java Basics - Anfänger-Themen 9
D Arraylisten sortieren bitte um Hilfe Java Basics - Anfänger-Themen 4
P Erste Schritte Bitte ein paar Erklärungen zu meinem Code Java Basics - Anfänger-Themen 6
J Bitte Hilfe Java Basics - Anfänger-Themen 4
V Memory Logik Problem/Denkblockade, bitte helft Java Basics - Anfänger-Themen 1
T Bitte um Hilfe bei Aufgabe: Long zahl = Long.parseLong(args [0]); Java Basics - Anfänger-Themen 3
A GUI- Allgemeines Problem (Bitte helfen) Java Basics - Anfänger-Themen 15
D Bitte um Hilfe bei "error: package com.apple.eawt does not exist import com.apple.eawt.*;" Java Basics - Anfänger-Themen 1
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
F Bitte mal Zusammenhänge der Klassen erklären Java Basics - Anfänger-Themen 8
P <identifier> expected Fehler bitte um Hilfe Java Basics - Anfänger-Themen 5
J Kann mir bitte mal jemand diese Codes erklären? Java Basics - Anfänger-Themen 19
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
O Rundungsfehler bitte erklären! Java Basics - Anfänger-Themen 4
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
S Variablen Hilfe bitte Java Basics - Anfänger-Themen 6
Z Erste Schritte Bitte helft mir dringend!! Java Basics - Anfänger-Themen 3
T Unit tests fehlerhaft bitte um hiiiiilfe :D Java Basics - Anfänger-Themen 1
J Ich bitte DRINGEND um Hilfe!!! Java Basics - Anfänger-Themen 16
Q Importieren meiner Boundary? Bitte Hilfe Java Basics - Anfänger-Themen 3
T Eine kurze frage vor der prüfung bitte. Java Basics - Anfänger-Themen 5
CyberFish initialisieren, obwohl es gemacht wurde! Bitte um Hilfe Java Basics - Anfänger-Themen 10
H Bitte um Hilfe von Profis. Java Basics - Anfänger-Themen 5
S Klassen Formel zur Berechnung .... Bitte um Hilfe Java Basics - Anfänger-Themen 7
J Probleme bei kompilieren ... Bitte um Hilfe Java Basics - Anfänger-Themen 27
O Erste Schritte Aller Anfang ist schwer ! Bitte um Unterstützung Java Basics - Anfänger-Themen 6
P Bitte um hilfe bei einfachem Rechner Java Basics - Anfänger-Themen 7
B Bitte Hilfe für Funktionalität eines Sudokus Java Basics - Anfänger-Themen 8
G Brauche bitte Hilfe, bei umgekehrter Ausgabe!! Java Basics - Anfänger-Themen 6
G Input/Output FilenameFilter aber bitte keine Unterordner Java Basics - Anfänger-Themen 5
J Vererbung Anfänger Programm bitte um Kritik&Anregungen Java Basics - Anfänger-Themen 21
N Bitte Java Basics - Anfänger-Themen 2
D ???:L Bitte einmal mit drüber nachdenken Java Basics - Anfänger-Themen 5
eLogic DownloadManager - Bitte helft mir Java Basics - Anfänger-Themen 7
U finde fehler nicht! bitte um hilfe Java Basics - Anfänger-Themen 8
M Problem: code too large - bitte um Hilfe Java Basics - Anfänger-Themen 12
U Bitte Helfen kleines Spiel Java Basics - Anfänger-Themen 9
B Java und Javac funktionieren nicht - bitte hilfe Java Basics - Anfänger-Themen 5
P Bitte helft mir Java Basics - Anfänger-Themen 3
3 Bitte um Hilfe bei Lösung einer Aufgabe Java Basics - Anfänger-Themen 16
M Aus CSV-Datei lesen und anzeigen (bitte schnell um Antwort) Java Basics - Anfänger-Themen 6
R Jave Problem... bitte um Hilfe!! Java Basics - Anfänger-Themen 6
S Java problem, bitte um hilfe! Java Basics - Anfänger-Themen 9
B Bitte um Hilfe es geht um Array + Punkte wie Dreieck,Fläche etc. Java Basics - Anfänger-Themen 12
C Bitte kurzes Feedback - JavaVersionen Java Basics - Anfänger-Themen 6
M Bitte um Verbesserungsvorschläge Java Basics - Anfänger-Themen 14
N verständniss problem bitte um hilfe Java Basics - Anfänger-Themen 3
L Brauche bitte dringend Hilfe für Klausur Java Basics - Anfänger-Themen 8
B Monat und Jahr bitte um Hilfe Java Basics - Anfänger-Themen 8
J Datentypen Generics - Bitte helfen !! Java Basics - Anfänger-Themen 9
T Java Beispiel Bitte helft mir Java Basics - Anfänger-Themen 5
A Dringende Bitte um Erklärungen zum besseren Verständnis Java Basics - Anfänger-Themen 4
D Java Problem bitte um hilfe Java Basics - Anfänger-Themen 4
S Datei-KopierProgramm ? CODE BITTE VERBESSERN Java Basics - Anfänger-Themen 11
D code erklären bitte ! Java Basics - Anfänger-Themen 15
Rudolf Verstehe das Ergebnis nicht - bitte erklären Java Basics - Anfänger-Themen 7
M Kann mir bitte jemand "java.util.ArrayList" erklären? Java Basics - Anfänger-Themen 5
M Bitte um Kontrolle meines Quelltextes Java Basics - Anfänger-Themen 10
J Leichte Java Anfängerfrage. Bitte schnelle Antwort. :) Java Basics - Anfänger-Themen 10
S BITTE UM HILFE: Unterschied Deklaration und Signatur einer Methode Java Basics - Anfänger-Themen 3
S BITTE UM HILFE HASHTABLE/import java.util.Hashtable in Ecplipse Java Basics - Anfänger-Themen 12
T Problem mit Aufgabe..bitte um Hilfe Java Basics - Anfänger-Themen 8
K 50 errormeldungen- komme auch nach vielen Nachmittagen nicht weiter. bitte helfen Java Basics - Anfänger-Themen 39

Ähnliche Java Themen

Neue Themen


Oben