Sam jestem bardzo początkujący, jednak postaram się jakoś pomóc koledze. Spodziewam się, że zostanie mi zwrócona uwaga, ale im więcej będę pracować tym prędzej będę odpowiadać bardziej z sensem. Problem kolegi wydaje się oczywisty, więc postaram się wypisać jakieś podpowiedzi.
Najpierw zdecyduj gdzie chcesz przechowywać dane twoich pracowników. Z początku możesz sobie przechowywać jakąś tablicę łańcuchów, lub zadeklarować stan obiektów ręcznie, jednak warto skorzystać z innych dostępnych możliwości takich jak zapis/odczyt z pliku lub bazy danych. Wszystko zależy od wymagań twojego zadania.
Najprostsze rozwiązanie to np. zwykły plik *.txt
Uzupełnij sobie plik kilkoma wstępnymi danymi np.
imie;nazwisko;wiek;zawod;wyksztalcenie;jezyki
Jan;Kos;21;programista;średnie;angielski
i kilku innych.
Kiedyś ucząc się podstaw programowania w Javie był przedstawiony przykład twojego problemu.
Powiedzmy, że pobrałeś powyższy łańcuch z pliku i za pomocą StringTokenizer rozdzielasz kolejne dane, które możesz przekazać do konstruktora utworzonej przez ciebie klasy np. Pracownik:
//Konstruktor
Pracownik(String imie, String nazwisko, int wiek, String zawod, String wyksztalcenie, String jezyk)
{
// Ciało konstruktora
}
Kiedy utworzysz obiekt nowego użytkownika przekazując do konstruktora pobrane dane, wystarczy, że napiszesz kilka metod, które będą wykonywać dla Ciebie pożądane operacje i zwracać równie pożądane odpowiedzi.
np.
pobierzImie()
{
return imie;
}
Przykład sprawdzenia czy pracownik zna jakis jezyk. Jeżeli nie to niech zwróci informację o tym, że musi się jeszcze pouczyć.
public boolean znaJakisJezyk()
{
if(this.getLanguage().equalsIgnoreCase("brak"))
return false;
//else niech zwróci true i tyle
}
Nic więcej ci chyba nie potrzeba, chyba, że chcesz np. zastosować dziedziczenie. Wtedy możesz stworzyć osobne klasy, dziedziczące klasę pracownik. (np. pracownik, prezes, sekretarka i tak dalej).
Twoje zadanko jest proste, więc nie powinieneś mieć większych problemów z napisaniem takiego programu.
W razie kolejnych pytań wal.
Masz poniżej ci wkleje kod jaki napisałem w 5 minut.
Person.java
package employers;
public abstract class Person {
String name = "";
public Person (String name)
{
this.name = name;
}
public String getName()
{
return name;
}
}
Worker.java
package employers;
import employers.Person;
public class Worker extends Person{
private String job = "";
private int age = 0;
private String language = "";
private double earnings = 0;
public Worker(String name, String job, int age, String language, double earnings) {
super(name);
this.setJob(job);
this.setAge(age);
this.setLanguage(language);
this.setEarnings(earnings);
}
public void setJob(String job) {
this.job = job;
}
public String getJob() {
return job;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setLanguage(String language) {
this.language = language;
}
public String getLanguage() {
return language;
}
public void setEarnings(double earnings) {
this.earnings = earnings;
}
public double getEarnings() {
return earnings;
}
}
WorkerTest.java
package employers;
import java.util.ArrayList;
public class WorkerTest {
public static void main(String[] args)
{
Language lan = new Language();
ArrayList<Worker> pracownik = new ArrayList<Worker>();
pracownik.add(new Worker("Michał", "programista", 21, "English", 1500));
pracownik.add(new Worker("Marcin", "leń", 21, "brak", 1500));
pracownik.add(new Worker("Michał", "HelpDesk", 21, "Deutch", 1500));
for(int i = 0; i < pracownik.size(); i++)
{
String mess = "Pracownik: " + ((Person) pracownik.get(i)).getName() + " Zawód: " + pracownik.get(i).getJob() +" Wiek:" + pracownik.get(i).getAge();
if(lan.isKnowAnyLanguage(pracownik.get(i)))
mess = mess + " Jezyk: " + pracownik.get(i).getLanguage() + ".";
else
mess = mess + " Nie zna zadnego obcego jezyka i musi sie pouczyć.";
System.out.println(mess);
}
}
}
Language.java
package employers;
public class Language {
public boolean isKnowAnyLanguage(Worker pracownik)
{
if(pracownik.getLanguage().equalsIgnoreCase("brak"))
return false;
else return true;
}
}
Klasa Language to typowa klasa, w której sprawdzamy czy nasz pracownik zna jakiś język. Prosty przykład, jak rozwinąć nasz program.
Program chwilówka, więc, mam nadzieję, że nie zostanę zbesztany z błotem. Kolega jest świeży, więc nie chciałem komplikować niczego.