Verbunddatentypen

Mister K.

Mitglied
Hallo community,
ich wollte in meiner main-methode ein paar städte mit zugehörigen daten ablegen. um nicht alle sneu schreiben zu müssen, bin ich wie folgt vorgegangen:


Java:
		public class MainDistance{
			String tag;
			double lat;
			double lon;
		}

		MainDistance a;                   // Hier meckert eclipse wegen dem ";". bei b; und c; 
		a = new MainDistance();       // nicht. Wieso nur bei a; ? was ist falsch?

		a.tag = Erlangen;
		a.lat = 49.599937;
		a.lon = 11.006300;


		MainDistance b;
		b = new MainDistance();

		b.tag = Köln;
		b.lat = 50.940666;
		b.lon = 6.959912;


		MainDistance c;
		c = new MainDistance();

		c.tag = Berlin;
		c.lat = 52.523403;
		c.lon = 13.411400;




	}


}}

Was ist bei a; falsch? :rtfm::autsch:

Mit freundlichen Grüßen
 
G

Gast2

Gast
Poste mal deinen kompletten Quellcode und die genaue Fehlermeldung. So kann man da nichts zu sagen.
 
S

SlaterB

Gast
> Hier meckert eclipse wegen dem ";". bei b; und c; nicht. Wieso nur bei a; ? was ist falsch?

in völlig konfusen Fällen gibt der Compiler ab einer bestimmten Zeile auf,
danach ist alles so falsch/ ungewiss, da könnte er jede Zeile bemeckern oder eben keine,

es gibt keinen allgemeinen Rücksprungpunkt so dass jede normale Codezeile wieder erkannt wird,
der Compiler kann keine Variablensichbarkeiten usw. berechnen ohne ein gewisses Grundbild,
"bin ich grad in einer Methode oder nicht?" usw.


wenn die Klasse, die Java-Datei so beginnt, dann schon falsch,
ansonsten ist jede einzelne Zeile davor wichtig,

Code außer Deklarationen kann aber eh nur in Methoden/ Konstruktoren stehen, und dort darf man keine weitere Class definieren

> Meinen ganzen code, darf ich aus rechtlichen Gründen nicht veröffentlichen :-/

fange immer mit einer leeren Klasse/ Hello World an und füge nach und nach einzelne gültige Codezeilen oder leere Methoden usw. ein
 

njans

Top Contributor
Du hast da auf jeden Fall unsinn im Code:
Du definierst anscheinen eine Innere Klasse innerhalb deiner Klasse.
Anschließend schreibst du da Zuweisungen und Deklarationen, aber da ist keine Methode drum

Java:
public class MainDistance{
            String tag;
            double lat;
            double lon;
        }

class MyClass{

  Public MyClass(){
        MainDistance a;                   // Hier meckert eclipse wegen dem ";". bei b; und c; 
        a = new MainDistance();       // nicht. Wieso nur bei a; ? was ist falsch?
 
        a.tag = Erlangen;
        a.lat = 49.599937;
        a.lon = 11.006300;
 
        MainDistance b;
        b = new MainDistance();
 
        b.tag = Köln;
        b.lat = 50.940666;
        b.lon = 6.959912;
 
        MainDistance c;
        c = new MainDistance();
 
        c.tag = Berlin;
        c.lat = 52.523403;
        c.lon = 13.411400;
       }
    }

So sollte das eher aussehen, es macht semantisch keinen Sinn, aber das ist eine andere Sache.
 
P

pappawinni

Gast
ich wollte in meiner main-methode ein paar städte

Also ich seh keine main-Methode, noch nicht..
und wenn du String zuweisen willst, dann bitte in Anführungszeichen
Code:
c.tag = "Berlin";

Ich denk das sollte wohl etwa so aussehen :

Java:
public class MainDistance{
         String tag;
         double lat;
         double lon;

         public static void main(String[] args){
             MainDistance a;                   
             a = new MainDistance();       

             a.tag = "Erlangen";
             a.lat = 49.599937;
             a.lon = 11.006300;

             MainDistance b;
             b = new MainDistance();

             b.tag = "Köln";
             b.lat = 50.940666;
             b.lon = 6.959912;

             MainDistance c;
             c = new MainDistance();

             c.tag = "Berlin";
             c.lat = 52.523403;
             c.lon = 13.411400;
             
             System.out.println(a);
             System.out.println(b);
             System.out.println(c);

         }
         
         @Override
         public String toString(){
        	 String str = String.format("%-20s %10.6f %10.6f",tag,lat,lon);
        	 return str;
         }
         
}
 
Zuletzt bearbeitet von einem Moderator:

Mister K.

Mitglied
So, dann kann ich mich auch gleich wieder recht herzlich bei euch bedanken!!! :-D

Es war tatsächlich außerhalb der Main-Methode... *schäm*

Grüßle!
 

Oben