Hello guys,
I have a task where I have an abstract superclass company and the subclasses Manager, Employee and Worker
These types of classes have different parameters (see constructors) and I shall generate the following output (in an unsorted and a sorted list):
Code
Unsortierte Liste
Worker: Hansen, Hans [1]
Worker: Clausen, Claus [2]
Employee: Jensen, Jens [3] Phone: 1234
Employee: Gunnarson, Gunnar [4] Phone: 4321
Manager: Petersen, Peter [5] Phone: 2341 FL-FH 1
Manager: Paulsen, Paul [6] Phone: 3451 FL-FH 2
So the thing that I'm missing is that the generated output is this:
Code
Unsortierte Liste
Worker@1e66a917
Worker@65e73498
Employee@2e2e1b6c
Employee@550a6723
Manager@1df95673
Manager@5c9aa764
So here are my classes:
Code
public abstract class Company {
protected String name;
protected String pNumber;
public Company(String name, String pNumber) {
this.name = name;
this.pNumber = pNumber;
}
static Company[] aCompanyArray = new Company[6];
public abstract String showMe();
static public void showAll() {
for(Company aCompany : aCompanyArray) {
System.out.println(aCompany);
}
}
static public void sortByName() { //didn't modify this yet
int[] aArray = new int[] { 3,2,1,4 };
int help;
for (int i = 0; i < aArray.length - 1; i++) {
for (int j = i + 1; j < aArray.length; j++) {
if (aArray[j] < aArray[i]) {
help = aArray[i];
aArray[i] = aArray[j];
aArray[j] = help;
}
}
}
for (int aInt: aArray) System.out.print(aInt + " ");
}
public String setName(String name) {
if (name != null & !name.trim().isEmpty()){
return this.name = name;
}
else return "undefined";
}
public String getName() {
return name;
}
public String getpNumber() {
return pNumber;
}
}
Code
public class Manager extends Company {
protected String telNr;
protected String carNr;
public Manager(String name, String pNumber, String telNr, String carNr) {
super(name, pNumber);
this.telNr = telNr;
this.carNr = carNr;
}
@Override
public String showMe() {
return "Manager: " + name + " [" + pNumber + "] Phone: " + telNr + " " + carNr;
}
public String setTelNr(String telNr) {
if (name != null & !name.trim().isEmpty()){
return this.telNr = telNr;
}
else return telNr;
}
public String getTelrNr() {
return telNr;
}
public String getCarNr() {
return carNr;
}
public String setCarNr(String carNr) {
if (name != null & !name.trim().isEmpty()) {
return this.carNr = carNr;
}
return carNr;
}
}
Code
public class Employee extends Company {
protected String telNr;
public Employee(String name, String pNumber, String telNr) {
super(name, pNumber);
this.telNr = telNr;
}
@Override
public String showMe() {
return "Employee: " + name + " [" + pNumber + "] Phone: " + telNr;
}
public String setTelNr(String telNr) {
if (name != null & !name.trim().isEmpty()){
return this.telNr = telNr;
}
else return telNr;
}
public String getTelrNr() {
return telNr;
}
}
Code
public class Worker extends Company {
public Worker(String name, String pNumber) {
super(name, pNumber);
}
@Override
public String showMe() {
return "Worker: " + name + " [" + pNumber + "]";
}
}
The question is where is something wrong so that the output is as it should be?
If you got constructive instructions I will show my appreciation!
Oh yeah and don't wonder I didn't modify the sorting algorithm yet - it's still the one we got as a sample.
This post was edited by Gala on Oct 27 2012 04:52pm