• Nie Znaleziono Wyników

Przykłady zadań 1. Dziedziczenie metod bez przedefiniowania i z przedefiniowaniem: rola słowa kluczowego super; przeciążanie metod. Zdefiniuj metody pokaz()

N/A
N/A
Protected

Academic year: 2021

Share "Przykłady zadań 1. Dziedziczenie metod bez przedefiniowania i z przedefiniowaniem: rola słowa kluczowego super; przeciążanie metod. Zdefiniuj metody pokaz()"

Copied!
1
0
0

Pełen tekst

(1)

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();}

}

4. Wykonaj zadanie 1w formie apletu. Wykonaj zadanie 2 w formie apletu. Sposób zdefiniowania metod wynika ze sposobu ich wywołania w metodzie paint klasy Towar. Do drukowania należy użyć metody drawString(String a, int x, int y) klasy Graphics.

W komentarzach w metodzie paint podano, co drukuje się po wywołaniu metod pokaz oraz podaj_typ w metodzie wyprowadz.

import java.awt.*;

import java.applet.*;

class Towar1 { int cena;

String nazwa;

Towar1(int cena_, String nazwa_)

{ cena=cena_; nazwa=new String (nazwa_);}

void pokaz(Graphics g, int a, int b) //na ekranie nazwa i cena { g.drawString(nazwa+", "+cena, a, b); }

}

class Towar2 extends Towar1 { int podatek;

Towar2(/*..*/) { /*..*/ }

void pokaz(/*..*/) { /*..*/ } }

public class Towar extends Applet { public void paint(Graphics g)

{ Towar2 p2 = new Towar2(20,"ksiazka",5);

Towar1 p1 = new Towar1(15,"kalendarz");

p2.pokaz(g,10,20); //ksiazka, 20 p2.pokaz(g,10,40," nazwa, cena, podatek: ");

// nazwa, cena, podatek:

20, ksiazka, 5

p1.pokaz(g,10,80); } //kalendarz, 15 }

(2)

5. Wykonaj zadanie 2 w formie apletu. Sposób zdefiniowania metod wynika ze sposobu ich wywołania w metodzie paint klasy Towar. Do drukowania należy użyć metody drawString(String a, int x, int y) klasy Graphics. W komentarzach w metodzi paint podano, co drukuje się po wywołaniu metod pokaz oraz podaj_typ w metodzie wyprowadz.

import java.awt.*;

import java.applet.*;

interface Dane

{ String produkt ="Typ produktu: ";

public void podaj_typ(Graphics g, int a, int b); } class Towar1 implements Dane

{ int cena;

String nazwa;

Towar1(int cena_, String nazwa_)

{ cena=cena_; nazwa=new String (nazwa_);}

void pokaz (Graphics g, int a, int b) //na ekranie nazwa i cena { g.drawString(nazwa+", "+cena, a, b); }

public void podaj_typ(/*..*/) { /* */ }

}

class Towar2 extends Towar1 { int podatek;

Towar2(/*…*/ ) { /*…*/ } void pokaz( /*…*/) { /*..*/ }

public void podaj_typ(/*..*/) { /*….*/}

}

public class Towar extends Applet

{static void wyprowadz(Towar1 p,Graphics g, int a, int b ) { p.pokaz(g,a,b);

p. podaj_typ (g,a,b+20); } public void paint(Graphics g)

{ Towar2 p2 = new Towar2(20,"ksiazka",5);

Towar1 p1 = new Towar1(15,"kalendarz");

wyprowadz(p2,g,10,10); //ksiazka, 20 //5

// Typ produktu 2 wyprowadz(p1,g,10,50); // kalendarz, 15 } // Typ produktu 1 }

Cytaty

Powiązane dokumenty

Wykorzystując formę średnio-zaawansowaną wyznaczyć dla poprzedniego zadania ponownie nakłada pracy oraz czas realizacji i wymaganą liczbę developerów przy założeniu,

b) Jeśli podano liczbę 1234, to program wypisuje na ekranie „Brawo, to właściwy kod” i w kolejnym wierszu „masz teraz dostęp do tajnych informacji”3. Jeśli nie podano

struct itimerspec *val, struct itimerspec *oldval) timerid Identyfikator timera zainicjowany przez

struct itimerspec *val, struct itimerspec *oldval) timerid Identyfikator timera zainicjowany przez

Polimorfizm czyli korzystanie z metod przedefiniowanych z identycznym nagłówkiem (nazwa, parametry, wynik zwracany przez return). Napisz program, który umoŜliwia obsługę zdarzenia

[r]

Ponieważ programiści oczekują, że operacja przypisania dla dwóch zmiennych jednakowego typu zawsze powinna się powieść, dlatego kompilator zawsze automatycznie tworzy ten

Doświadczenie losowe. Doświadczenie losowe D jest to pewne powtarzalne postępowanie, którego wyniku nie da się przewidzieć z całkowitą pewnością. Jednakże