Przykłady zadań
1. Dziedziczenie metod bez przedefiniowania i z przedefiniowaniem: rola słowa kluczowego super; przeciążanie metod.
Zdefiniuj metody pokaz() w klasach Towar1 (bez parametrów) i Towar2 (z parametrem), tak, aby poprawnie działała funkcja main w klasie Towar.
class Towar1 { int cena;
String nazwa;
Towar1(int cena_, String nazwa_)
{ cena=cena_; nazwa=new String (nazwa_);}
void pokaz() { /*...*/ } //na ekranie nazwa i cena }
class Towar2 extends Towar1 { int podatek;
//zdefiniuj konstruktor, który dziedziczy po Towar1 i //przypisuje podatek_ do składowej podatek
//oraz metode pokaz, która na ekranie wyświetla dane:
cena, //nazwa za pomocą dziedziczonej metody pokaz() oraz
podatek //wraz przekazanym przez nagłówek łańcuchem zawierającym //menu- wykorzystaj do definicji słowo super }
public class Towar
{ public static void main (String[] args) { Towar2 p2 = new Towar2(20,”ksiazka”,5);
Towar1 p1 = new Towar1(15, ”kalendarz”);
p2.pokaz(); //ksiazka, 20 p2.pokaz(”nazwa, cena, podatek: ”);
// nazwa, cena, podatek: ksiazka, 20 5
p1.pokaz(); } //kalendarz, 15 }
2. Polimorfizm czyli korzystanie z metod przedefiniowanych z identycznym nagłówkiem (nazwa, parametry, wynik zwracany przez return). Podaj kody funkcji podaj_typ() i pokaz() w klasie Towar1 i Towar2.
public interface Dane
{ String produkt ="Typ produktu: ";
public void podaj_typ(); } class Towar1 implements Dane
{ int cena;
String nazwa;
Towar1(int cena_, String nazwa_)
{ cena=cena_; nazwa=new String (nazwa_); } void pokaz() { /*...*/ } //wyświetla nazwę i cenę public void podaj_typ () {/*...*/ } //wyświetla typ produktu }
class Towar2 extends Towar1 { int podatek;
//zdefiniuj konstruktor inicjujący atrybuty obiektu, (zastosuj //słowo super) i przypisuje podatek_ do składowej podatek //oraz dwie metody: pokaz(), podaj_typ ()
//pierwsza wyświetla na ekranie dane: cena, nazwa, za pomocą //dziedziczonej metody pokaz oraz podatek - do definicji //wykorzystaj słowo super, druga podaje typ produktu (implementacja metody podaj_typ())
public class Towar
{ static void wyprowadz(/*podać typ parametru p*/) { p.pokaz();
p. podaj_typ (); }
public static void main (String[] args)
{ Towar2 p2 = new Towar2(20,”ksiazka”,5);
Towar1 p1 = new Towar1(15, ”kalendarz”);
wyprowadz(p2); //ksiazka, 20 5
// Typ produktu 2 wyprowadz(p1); } // kalendarz, 15 } // Typ produktu 1
3. Napisz program, który umożliwia obsługę zdarzenia typu Action – zdefiniuj metody zarządcy zdarzeń obsługującej zdarzenie oraz przyciski typu JButton generujące zdarzenia
public class Aplikacja extends JFrame implements ActionListener
{ JButton przycisk = new JButton(/*Podać parametry */);
JTextArea tekst=new JTextArea(/*Podać parametry */);
String dana = new String ();
public Aplikacja()
{ //zdefiniować ciało konstruktora }
public void actionPerformed (ActionEvent evt)
{/*zdefiniować ciało metody obsługującej zdarzenie od przycisku przycisk*/}
public static void main(String[] arg) throws Exception { Aplikacja pr= new Aplikacja();
pr.show();}
}