Problem bei dynamischen Binden für Refaktorisierung

skuki

Aktives Mitglied
Hallo,

ich habe eine Aufgabe eine einfache Klasse mit der Hilfe von dynamischen Binden zu refaktorisieren.

Code:
public class Employee
{
        String name;
        String limit;
        
        public Employee(String name, String limit)
        {
                this.name = name;
                this.limit = limit;
        }
        
        public String isLimited()
        {
                if(limit==null)
                        return "unbefristet";
                else
                        return limit;
        }
        
        @Override
        public String toString()
        {
                return name+" ("+isLimited()+")";
        }
        
        
        
        
        	 public static void main (String [] args){
			Employee e1 = new Employee("Peter",null);
			Employee e2 = new Employee("Hans","14.03");
			System.out.println(e1);
			System.out.println(e2);
        
        }
}



Ich denke mal das Ziel wird sein eine abstract class Employee mit zwei erbenden Klassen befristet und unbefristet zu gestalten.

Hier mein Code für die einzelnen Klassen:

AEmployee.java
Code:
public abstract class AEmployee{
	
	String name;
	
	
	public AEmployee(String name){
	
		this.name = name; 
	
	}
	
	
	public String toString(){
	
		return name;
	
	}


}

unbefristetEmployee.java
Code:
public class unbefristetEmployee extends AEmployee{
	
	public unbefristetEmployee(String name){
		
		super(name);
	
	}
	
	public String toString(){
	
		return super.toString() + " und ist unbefristet";
	
	}



}


befristetEmployee.java

Code:
public class befristetEmployee extends AEmployee{
	
String limit;

	public unbefristetEmployee(String name, String limit){
	
	
	super(name);
	this.limit = limit;
	
	
	}
	
	public String toString(){
	
		return super.toString() + " und hat ein Limit bis: " + limit;
	
	}



}


und die EmployeeTest.java


Code:
public class EmployeeTest{
	
	public static void main(String [] args){
	
			AEmployee e1 = new unbefristetEmployee("Peter");
			AEmployee e2 = new befristetEmployee("Hans","14.03");
			
			
			System.out.println(e1);
			System.out.println(e2);
	
	
	}


}


Leider versteh ich nicht warum mir der Kompilier folgenden Fehler ausgibt:

invalid method declaration; return type required
public unbefristetEmployee(String name, String limit){
^

[STRIKE]Ich seh einfach nicht den Fehler. Kann mir da bitte jemand helfen? [/STRIKE]

Ich Dämlack :lol: wer findet den Fehler? :idea:

Aber wichtiger noch:
War meine Annahme korrekt und muss man das so handhaben? Also die Klasse "splitten"? Gäbe es andere, bessere Methoden?

Vielen DANKE!
 
Zuletzt bearbeitet:
Jap ein blöder Copy&Paste Fehler wahrscheinlich :lol:

Da du uns nicht den genauen Wortlaut der Aufgabe mitteilst können wir dir nicht wirklich sagen ob es richtig ist.
Klar könnte man die Klasse Employee aufteilen auf 2 Subklassen (befristet/unbefristet).

Was ich aber dem Code zum Aussetzen habe ist das die Schreibweise der Klassennamen. Klassennamen sollten in Java mit einem Großbuchstaben beginnen und in UpperCamelCase geschrieben werden! Außerdem mischt du English und Deutsch in Bezeichnungen, entweder oder 😉
 
So war es :bloed:


Was ich aber dem Code zum Aussetzen habe ist das die Schreibweise der Klassennamen. Klassennamen sollten in Java mit einem Großbuchstaben beginnen und in UpperCamelCase geschrieben werden! Außerdem mischt du English und Deutsch in Bezeichnungen, entweder oder


Gut danke, werde ich berücksichtigen. :rtfm:


Leider war das eine recht kurze Prüfungsangabe. Einfach mit Hilfe von dynamischen Binden refaktorisieren.. Kam mir nur etwas komisch vor, da es zwar eine von 4 Aufgaben war, man das aber in 2-3 Minuten druntergeschrieben hat. (Vorausgesetzt man macht keine C&P Fehler :toll:

Wollte mich hier nur nochmal versichern dass nichts anderes gemeint war.
 

Neue Themen


Zurück
Oben