Witam,
Jestem nowicjuszem w programowaniu (wcześniej miałem do czynienia jedynie z pascalem). Postanowiłem więc pouczyć sie javy:) Poniżej znajduje się kod TestPracownika. Jest to przykład z książki Java podstawy. Parę rzeczy w nim nie rozumiem dlatego mam nadzieje że mnie oświecicie:)
public class TestPracownika {
public static void main(String[] args)
{
// wypełnij tablicę obsługi trzema obiektami pracowników
Pracownik[] obsluga = new Pracownik[3];
obsluga[0] = new Pracownik("Karol Kraker", 75000,
1987, 12, 15);
obsluga[1] = new Pracownik("Henryk Haker", 50000,
1989, 10, 1);
obsluga[2] = new Pracownik("Tomasz Tester", 40000,
1990, 3, 15);
// podnieś pensje o 5%
for (int i = 0; i < obsluga.length; i++)
obsluga[i].podniesPensje(10);
// wyświetl informacje o wszystkich obiektach Pracownik
for (int i = 0; i < obsluga.length; i++)
{
Pracownik p = obsluga[i];
System.out.println("nazwisko = " + p.pobierzNazw()
+ ", pensja = " + p.pobierzPensje()
+ ", dzień zatrudnienia = " + p.pobierzDzienZatrudnienia());
}
}
}
class Pracownik
{
public Pracownik(String n, double p,
int rok, int miesiac, int dzien)
{
nazwisko = n;
pensja = p;
GregorianCalendar kalendarz
= new GregorianCalendar(rok, miesiac - 1, dzien);
// GregorianCalendar liczy miesiące od 0
dzienZatrudnienia = kalendarz.getTime();
}
public String pobierzNazw()
{
return nazwisko;
}
public double pobierzPensje()
{
return pensja;
}
public Date pobierzDzienZatrudnienia()
{
return dzienZatrudnienia;
}
public void podniesPensje(double oProcent)
{
double podwyzka = pensja * oProcent / 100;
pensja += podwyzka;
}
private String nazwisko;
private double pensja;
private Date dzienZatrudnienia;
}
- Dlaczego w kodzie wyświetlającym informacje o wszystkich obiektach Pracownik jest "przedrostek" p oraz definicja Pracownik p = obsługa[i].
- Jeśli w konstruktorze są zdefiniowane zmienne to pi co pisać nazwisko=n, pensja=p;
- dlaczego zdefiniwane są dwie metody do do pensji: pobierzPensje() i pobierzPensje. Nie mozna tego połączyć?
- Skąd program "wie", że pensja to akurat ten konkretny rekord w tabeli (chodzi mi o kwoty). Gdzie to jest zdefiniowane ?
Wiem, że są to może i głupie pytania, ale mam nadzieję że na tym etapie mojej nauki zostanie mi to wybaczone:) Jeśli ktoś ma czas żeby zamiast odpowiadać na pytania wytłumaczyć mi ten program po swojemu też będę wdzięczny. Z góry dziękuję za pomoc