Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
1. Explicați efectul instrucțiunilor //1, //2, //3 și //4. Precizați ce mesaje sunt afișate.
#include <iostream.h> class D: public B{ void main(){
class B{ public: B *pb;
public: D(){cout<<"D()"<<endl;} pb=new D(); //1
B(){cout<<"B()"<<endl;} virtual ~D(){cout<<"~D()"<<endl;} pb->m(); //2
virtual ~B(){cout<<"~B()"<<endl;} virtual void m(){cout<<"D::m()"<<endl;} pb->s(); //3
virtual void m(){cout<<"B::m()"<<endl;} void s(){cout<<"D::s()"<<endl;} delete pb; //4
void s(){cout<<"B::s()"<<endl;} }; }
};
3. Adăugați programului de mai jos clasa Impl astfel încât prin executarea programului să fie
afișat mesajul
Hello, Tudor!
public class Interf{ interface ModAfisare{
public static void main(String[] args){ public void afisare(String s);
ModAfisare ma= new Impl("Tudor"); }
ma.afisare("Hello");
}
}
5. Se consideră următoarea interfaţă Java, în care sunt definite câteva operaţii elementare asupra
listelor de obiecte:
interface ListOperations{
public void add(Object o);// adauga un obiect in lista
// returneaza, fara a sterge,
// elementul curent din lista
public Object currentElement();
public void delete();// sterge elementul curent
}
Se cere să implementaţi această interfaţă printr-o clasă Queue ale cărei obiecte sunt liste eterogene First
In First Out (cozi în care elementul current are cea mai mare vechime în listă şi este indicat de cursor).
Aceste liste sunt observabile în sensul următor: când cursorul este deplasat, noul element curent este
transmis către toate obiectele observatoare (aici includem şi cazul în care se adaugă un element într-o
listă vidă).
Obiectele observatoare sunt din clasa QueueObserver, pe care trebuie de asemenea s-o definiţi.
Completând corespunzător //…1, //…2, //…3 şi //…4, programul test de mai jos trebuie să afişeze
rezultatele următoare:
100
100
Tudor
Andrei
// atribute
private Queue obsQ; // coada observabila