Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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.

  • Autor
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.

  • 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 ;).

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.

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

Ä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 (@_@)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.