GRUPA B 15.01.2010
1)Wyjaśnij kiedy i gdzie są wiązane atrybuty w Javie. Wyjaśnij jak wiązanie ma się do dziedziczenia (8pkt)
- W Jawie wartości parametrów przekazywane są zgodnie z zasadą wywołania przez wartość (ang. call by value).
- Znaczy to tyle, ze podczas wykonania metody aktualne wartości jej parametrów są kopiowane do nowych zmiennych, a po jej wykonaniu przywracane parametrom.
- W konsekwencji, metoda nie zmienia wartości swoich parametrów.
a) W podklasie atrybut o tej samej nazwie zostanie zasloniety
b) Zostanie wygenerowany blad jesli atrybut w klasie bazowej jest finalny
c)Dostep do atrybutłw z klasy bazowej nastepuje poprzez super().nazwa_atrybutu
d)Atrybuty sa wiazane statycznie tzn podczas kompilacji
2)Co się wyświetli po uruchomieniu poniższego program. Odpowiedź uzasadnij (8pkt)
|
|
Wyświetli sie:
1
0 1
pierwszy printline:
Dlatego ze : przekazujemy 0 do metody m na rzecz obiektu o klasy CbC - tam jest zwiekszany o 1 i zwracana wartosc to wlasnie ta zwiekszona o 1 czyli 1;
drugi printline:
Dlatego ze : j = 0 brane z maina a dalej spacja i wartosc val = 1 , bo wczesniej jak wykonywalismy metode m() to została przypisana wartosc i = 1 -> val
3)E1 dziedziczy po Exception , E2 i E3 dziedziczy po E1, usunąć błedy badz je poprawic (14pk)
|
|
4)Utworzyć dwie klasy "FootballTeam" i "Play". Pierwsza z nim ma miec atrybut mowiacy o nazwie zespolu oraz atrybut wszystkich meczow danego zespołu. Ponadto powinna miec konstruktor z odpowiednimi parametrami do stworzenia obietku danej klasy. Musi rowniez posiadac metode wins() zwracajaca liczbe wygranych meczy. Klasa Play ma miec 2 atrybuty odnosnie przeciwników(chyba nazwy zespołów) oraz atrybut mówiący o wyniku liczbowym meczu. (20pkt)
public class FootballTeam
{
public Strign nazwa;
public Vector<Play> mecze;
public FootballTeam(String nazwa)
{
this.nazwa = nazwa;
}
public int Wins()
{
int k = 0;
for(Play p : mecze)
{
if(p.nasze > p.ich)
k++;
}
return k;
}
}
}
public class Play
{
public String nazwa_z1;
public String nazwa_z2;
public int nasze; //bramki zdobyte przez dany zespol
public int ich; // bramki ktore strzelono danemu zespolowi
public Play(String nazwa_z1, String nazwa_z2, int nasze, int ich)
{
this.nazwa_z1 = nazwa_z1;
this.nazwa_z2 = nazwa_z2;
this.nasze = nasze;
this.ich = ich;
}
}