Personalbuero/Mitarbeiter

Status
Nicht offen für weitere Antworten.
M

Manuli

Gast
Hallo kann mir jemand bei meinem Programm bitte helfen? Es funktionieren meine Methoden nicht, also die zwei Objekte verbinden sich nicht wie ich es gerne hätte:
Code:
[b]Personalbuero:[/b]


/**
 * Beschreiben Sie hier die Klasse Personalbuero.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Personalbuero
{
    private Mitarbeiter ma1;
    private Mitarbeiter ma2;
    private Mitarbeiter ma3;
    
    //Konstr.
    
    public Personalbuero ()
    {
    }
    
    //getter
    
    public Mitarbeiter getMa1()
    {
        return ma1;
    }
    public Mitarbeiter getMa2()
    {
        return ma2;
    }
    public Mitarbeiter getMa3()
    {
        return ma3;
    }
    
    //setter
    
    public void setMa1(Mitarbeiter ma1)
    {
        if(ma1 != null)
            this.ma1 = ma1;
        else
            System.out.println("Null-Referenz für ma1");
     }
     
     public void setMa2(Mitarbeiter ma2)
    {
        if(ma2 != null)
            this.ma2 = ma2;
        else
            System.out.println("Null-Referenz für ma2");
     }
     
     public void setMa3(Mitarbeiter ma3)
    {
        if(ma3 != null)
            this.ma3 = ma3;
        else
            System.out.println("Null-Referenz für ma3");
     }
     
     //aufnehmen nimmt übergebenen mitarbeiter auf aber nur wenn er
    //jünger als 50 ist, u. gibt zurück ob die aufnahme funktioniert hat

      public boolean aufnehmen (Mitarbeiter ma)
      {
          boolean mita= false;
       if(ma !=null)
            if(ma.berechneAlter () < 50)
       {
           if(ma1 !=null)
           {
               this.ma1=ma;
               mita=true;
            }
            else
                if(ma2 != null)
                {
                    this.ma2=ma;
                    mita=true;
                }
                else
                    if(ma3 != null)
                    {
                        this.ma3=ma;
                        mita=true;                    }
                    else
                    System.out.println("Keinen Platz für neuen Mitarbeiter");
             }
                else
                System.out.println("Kunde ist zu alt für unsere Firma");
            else
            System.out.println("Null-Referenz");    
            return mita;
        }
        
        //gehaltListe gibt info über alle Mitarbeiter auf die Konsole aus
        
        public String gehaltListe ()
        {
            
            if(ma1 != null)
            System.out.println(ma1.toString());
                if(ma2 != null)
                System.out.println(ma2.toString());
                    if(ma3 != null)
                    System.out.println(ma3.toString());
            return null;
                    
       }
       
       //berechneGehaltSumme berechnet alle Gehälter der Mitarbeiter da kommt aber immer nur ein gehalt raus 
       
       public float berechneGehaltSumme ()
       {
           float summe = 0;
           
           if(ma1 != null)
            summe = summe + ma1.berechneGehalt();
          
           if(ma2 != null)
           summe = summe + ma2.berechneGehalt();
           
           if(ma3 != null)
           summe = summe + ma3.berechneGehalt();
            
           return summe;
        }
        
        //kuendigen entfernt diesen Mitarbeiter-Kündigungsschutz für 60+jährige
        
        public boolean kuendigen (String name)
        {
            if(ma1 != null)
            {
                if(ma1.berechneAlter() < 60)
                   {
                       if(ma1.getName() == name)
                       else
                       
                          if(ma2 != null)
            {
                if(ma2.berechneAlter() < 60)
                   {
                       if(ma2.getName() == name)
                       
                       
                    return true;
                    }
            return true;
            }
         return true;
        }

        if(ma2 != null)
            {
                if(ma1.berechneAlter() < 60)
                   {
                       if(ma2.getName() == name)
                    return true;
                    }
            return true;
            }
         return true;
        }
        
        if(ma3 != null)
            {
                if(ma3.berechneAlter() < 60)
                   {
                       if(ma3.getName() == name)
                    return true;
                    }
            return true;
            }
         return true;
        }
}





[b]Mitarbeiter[/b]:



/**
 * Beschreiben Sie hier die Klasse Mitarbeiter.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Mitarbeiter
{
    private String name;
    private int gebJahr;
    private int eintritt;
    private String wohnort;
    
    //Konst.
    
    public Mitarbeiter (String name, int gebJahr, int eintritt, String wohnort)
    {
        setName(name);
        setGebJahr(gebJahr);
        setEintritt(eintritt);
        setWohnort(wohnort);
    }
    
    //getter
    
    public String getName()
    {
        return name;
    }
    public int getGebJahr()
    {
        return gebJahr;
    }
    public int getEintritt()
    {
        return eintritt;
    }
    public String getWohnort()
    {
        return wohnort;
    }
    
    //setter
    
    public void setName(String name)
    {
        if(name != null)
            this.name = name;
        else
            System.out.println("Null-Referenz für Name");
    }
    
    public void setGebJahr(int gebJahr)
    {
        if(gebJahr >= 1920 && gebJahr <= 2008)
            this.gebJahr = gebJahr;
        else
            System.out.println("Falscher Parameter für Geburtsdatum");
    }
    
    public void setEintritt(int eintritt)
    {
        if(eintritt >= 1980 && eintritt <=2008)
            this.eintritt = eintritt;
        else
            System.out.println("Falscher Parameter für Eintritt");
    }
    
    public void setWohnort(String wohnort)
    {
        if(wohnort != null)
            this.wohnort = wohnort;
        else
            System.out.println("Null-Referenz für Wohnort");
    }
    
    //berechneAlter
    
    public int berechneAlter()
    {
        return 2008 - this.gebJahr;
    }
    
    //berechneDienstalter
    
    public int berechneDienstalter()
    {
        return 2008 - this.eintritt;
    }
    
    //berechneGehalt
    
    public float berechneGehalt()
    {
        int gehalt = 1500;
        if(berechneDienstalter() > 0)
            gehalt = gehalt + (berechneDienstalter() * 50);
        else
            System.out.println("Mitarbeiter arbeitet noch nicht so lange bei uns");
        return gehalt;
        }
        
     //toString
     
     public String toString()
     {
         String str= ("Name: " +this.name+
                        "\nGeburtsjahr: "+this.gebJahr+
                            "\nGehalt: "+berechneGehalt()+ " Euro");
         return str;
     }
     
     //print
     
     public void print()
     {
         System.out.println(toString ());
     }
}
 
S

SlaterB

Gast
du willst die Fehlermeldung nicht nennen?

warum verwendest du keine ordentliche Einrückung?


normalerweise schreibt man ein Programm mit 10 Zeilen,
prüft ob es geht, wenn ja, dann weitere 10 Zeilen, ansonsten Fehler suchen,

300 Zeilen mit 30 Fehlern auf einmal zu tippen und dann nicht mehr durchzusehen ist kontraproduktiv

-----

in
> public boolean kuendigen (String name)
existiert kein 'return false', nur zig 'return true'

wenn es keinen false-Fall gibt, dann gib doch gleich am Anfang einmal true zurück und erspar dir den vielen Code
 
G

Gast

Gast
Richtig zuerstmal solltest du das ganze leserlich machen.

Dazu gehört zu allererst eine ordentliche Formatierung.

Die ganzen NULL Abfragen würd ich persönlich auch rausschmeißen, die blähen den Code nur unnötig auf und bringen keinen wesentlichen Vorteil. Wenn du überall damit rechnen auf Null zu laufen, solltest du deine Programmstruktur überdenken.

Du solltest darüber hinaus auch versuchen lange verschachelte IF Anweisungen zu vermeiden, da kann man sich nur verhaspeln und meist gehts auch einfacher.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben