Zum Inhalt springen

Array an Methode übergeben - Fehlermeldung?


Skylark

Empfohlene Beiträge

package MitarbeiterArray;


public class MitarbeiterArrayTest 

{

  public static void main(String[] args)

  {

    Mitarbeiter [] m = new Mitarbeiter [5];


    m[0] = new Arbeiter ("ggggg", 2345, "fdffdffdf", 12.0, 8);

    m[1]= new Angestellter ("dfdsfdssdf", 3456, "fdsfdsfsdfsdf", 2000.0);

    m[2]= new Verkaeufer ("sfdsfsdfsd", 2346, "dfsdfdsfdsfsdfsd", 13.0, 9, 20000, 2.0);

    m[3] = new Arbeiter ("fdsfsdfdsfsdfsdf", 7354, "fdsfsdfsdfsdfsd", 11.0, 9);

    m[4]= new Angestellter ("fdsfsdfdsfs", 2578, "fdssdfdsfdsfs", 5000.0);


    [COLOR="#FF0000"]public static double gesamtverdienst (Mitarbeiter[] m)[/COLOR]

    {


    double gVerdienst;



    return gVerdienst;   

    }        


   //Aufgabe 3 

   // for(int i=0; i<m.length; i++)

   //{ 

   //   

   //   System.out.println();  

   //   m[i].display();

   // }


   //Aufgabe 4 

   // for(int i=0; i<m.length; i++)

   // { 

   //  if(m[i] instanceof Angestellter)

   //   {

   //   System.out.println();  

   //   m[i].display();

   //   }

   // }


    //Aufgabe 5 


    //for(int i=0; i<m.length; i++)

    //{ 

    // if(m[i] instanceof Arbeiter && !(m[i] instanceof Verkaeufer))

    //  {  

    //  System.out.println();  

    //  m[i].display();

    //  }  

    //}


    //Aufgabe 6 a)

    //for(int i=0; i<m.length; i++)

    // { 

    // if(m[i] instanceof Verkaeufer)

    //  {  

    //  System.out.println(m[i].getName());

    // 

    //  }  

    //}


    //Aufgabe 6 

    //for(int i=0; i<m.length; i++)

    // { 

    // if(m[i] instanceof Angestellter)

    // {  

    //   Angestellter a = (Angestellter) m[i];

    //   System.out.println(a.getVerdienst());

    // }

    // }  


    //Aufgabe 6c)

    //for(int i=0; i<m.length; i++)

    //{ 

    //if(m[i] instanceof Angestellter)

    //{

    //Angestellter a = (Angestellter) m[i];

    //  

    //if(a.getMitarbeiternummer()>=2000 && a.getMitarbeiternummer()<=4000)

    // {

    //System.out.println();  

    //m[i].display();

    //}

    //}

    //}




  }[/code]

Anscheinend kann ich nicht mal mehr eine Methode richtig erstellen. Weshalb wird mir hier der Fehler "Illegal start of expression" angezeigt?

Edit: Hat sich erledigt. Da sieht man, was 30 Minuten Schlaf in der letzten Nacht bewirken ;-)

Bearbeitet von Skylark
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich das richtig sehe befindest du dich mit deiner Methoden Definition innerhalb der Main Funktion und das geht halt nicht.

Füge:

public static double gesamtverdienst (Mitarbeiter[] m)

{

double gVerdienst;

return gVerdienst;

}

über die Main ein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

wenn du nächste mal eine sinnvolle Antwort möchtest ... BENENN DIE VARIABLEN VERNÜNFTIG

Welche Variablen sind denn nicht vernünftig benannt?

Wenn ich das richtig sehe befindest du dich mit deiner Methoden Definition innerhalb der Main Funktion und das geht halt nicht.

Füge:

über die Main ein.

Danke, hatte ich dann später auch bemerkt. Wenn man zu viel macht, klappen die einfachsten Dinge nicht mehr.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Zum Thema Variablen vernünftig benennen:

Man sollte Variablen so benennen, dass man auf den ersten Blick sieht, worum es geht.

(Negativ) Beispiel aus deinem Quellcode:

Mitarbeiter [] m = new Mitarbeiter [5];

Bei der Initalisierung besteht hier noch kein Problem. Wenn man aber an einer anderen Stelle im Code die Variable verwendet wird, ist nicht mehr auf den ersten Blick ersichtlich, dass es sich hierbei um ein Array von Mitarbeitern handelt.

z.B.

// if(m instanceof Verkaeufer)

// {

// System.out.println(m.getName());

//

// }

Diese "Regel" sollte man in Ausnahmefällen wie in Zählervariablen in einer Schleife nicht anwenden.

Hier ist int i=0; durchaus eine gute Namenswahl ;).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Einfache Regel für die Benennung:

Je länger die Distanz in welcher die Variable Gültigkeit hat, desto länger/sprechender sollte der Variablenname Sein. Beispiel:



public void Mitarbeiter retrieveMitarbeiterById(long id){
Mitarbeiter m=MitarbeiterRepository.getMitarbeiterById(id);
if(m==null) throw new MitarbeiterNotFoundException();
return m;
}
[/php]

Anhand dieses Schnipsels, welches einer fiktiven Serviceklasse entnommen ist, ist schnell klar: [i]m[/i] meint hier Mitarbeiter.

Der Scope ist recht eingeschränkt und übersichtlich. Da macht das nichts, wenn eine Variable kurz benannt ist.

Bei mehr Zeilen Code sollte man die Variable schon mit "mitarbeiter" benennen, damit man auch später noch weiß, was man sich bei dem Code gedacht hat.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Einfache Regel für die Benennung:

Je länger die Distanz in welcher die Variable Gültigkeit hat, desto länger/sprechender sollte der Variablenname Sein. Beispiel:



public void Mitarbeiter retrieveMitarbeiterById(long id){
Mitarbeiter m=MitarbeiterRepository.getMitarbeiterById(id);
if(m==null) throw new MitarbeiterNotFoundException();
return m;
}
[/php]

Anhand dieses Schnipsels, welches einer fiktiven Serviceklasse entnommen ist, ist schnell klar: [i]m[/i] meint hier Mitarbeiter.

Der Scope ist recht eingeschränkt und übersichtlich. Da macht das nichts, wenn eine Variable kurz benannt ist.

Bei mehr Zeilen Code sollte man die Variable schon mit "mitarbeiter" benennen, damit man auch später noch weiß, was man sich bei dem Code gedacht hat.

Naja der deutsch / english Mix macht das ganze auch nicht besser. Fakt ist m ist keine akzeptable Variablenbezeichnung die ein Objekt vom Typ Mitarbeiter repräsentiert.

Ein Name dafür z.B. wäre: Employee employee = new Employee();

Das wäre durchgängig sprechend für ein Objekt vom Typ Mitarbeiter.

Ansonsten verstehe ich deine MEthode grad nicht:

[PHP]public void Mitarbeiter retrieveMitarbeiterById(long id){

Wieso steht da void und als Datentyp Mitarbeiter drin? Das ist ein Fehler, eine void Methode gibt nichts zurück.

Da hat sich wohl was fieses eingeschlichen.

Variablen und Methodennamen sollten einfach sprechend sein, man muss immer davon ausgehen das man nicht allein an einem Projekt arbeitet, ja oft sogar nicht mal im gleichen Böro sitzt oder im gleichen Land lebt. Deshalb in der Softwareentwicklung konsequent englisch Namen und sprechend.

Gruß Litter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Äh ja. *lol*

Also:


public Employee retrieveEmployeeById(long id){
Employee e=EmployeeRepository.getEmployeeById(id);
if(e==null) throw new EmployeeNotFoundException();
return e;
}
[/php]

Dann ergibt alles Sinn, oder?

Manchmal sitzt man auf dem Schlauch :D

Warum das Void noch davor stand, weiß ich auch nicht mehr (@_@)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...