PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI

Similar documents
PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

Nasleđivanje i izvedene klase u jeziku C++

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

PROGRAMIRANJE. Amir Hajdar

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

PREDMET. Osnove Java Programiranja. Čas JAVADOC

Objektno Orijentisano Programiranje - C++

Java. Ugnježdeni tipovi IMI PMF KG OOP 09 AKM. najveći deo teksta je preuzet sa slajdova Prof. Dragana Milićeva (ETF Bg) namenjenih pedmetu OOP2

pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1

VRIJEDNOSTI ATRIBUTA

Vežbe - XII nedelja PHP Doc

Programiranje III razred

C++ minitutorial. Osnovni elementi i koncepti programskog jezika C++ uz primere

Visoka tehnička škola Niš

NIZOVI.

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

Lekcija 09 Sakrivanje podataka, statički članovi, preklapanje funkcija i operatora. Miljan Milošević

f2() f6() main() f3() f7() f4()

24/03/2018. Deklaracija promenljivih. Inicijalizacija promenljivih. Deklaracija i inicijalizacija promenljivih

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

public static void main(string []args) { System.out.println("Hello World"); /* prints Hello World */

Računarske osnove Interneta (SI3ROI, IR4ROI)

String. String. Kreiranje string objekta pomoću string literala (konstanti) Kreiranje string objekta

Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju

Objektno orijentisano programiranje

PARALELNO PROGRAMIRANJE

Visoka tehnička škola Niš

VHDLPrimeri Poglavlje5.doc

Objektno orijentisano programiranje. Aleksandra Klašnja-Milićević Marko Marković

RAČUNARSKI PRAKTIKUM II

Programiranje III razred

Java IMI PMF KG OOP 09 AKM. Objekti i klase

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

Prirodno-matematički fakultet u Nišu Departman za fiziku. dr Dejan S. Aleksić Programiranje u fizici

Uputstvo za korišćenje logrotate funkcije

Računarski praktikum 4

Funkcije, prenos parametara i dinamička alokacija memorije

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv

Prva recenica. Druga recenica.

PROGRAMIRANJE. Teme. Packages Reference objekata Inheritance nasljeđivanje Exceptions. Amir Hajdar

TEHNIKA I INFORMATIKA U OBRAZOVANJU

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

Informacioni sistemi i baze podataka

Izrada VI laboratorijske vježbe

VB komande. Programiranje 1

x y = z Zadaci - procedure

PHP? PHP (recursive acronym "PHP: Hypertext Preprocessor") Open Source general-purpose scripting language Web development

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

RDF, RDFS i JSON-LD. NIKOLA MILIKIĆ URL: nikola.milikic.info

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

PRINCIPI SOFTVERSKOG INŽENJERSTVA TIM NAZIV_TIMA

16. Sigurnije programiranje

Vidljivost TipPovratneVrednosti ImeFunkcije (NizParametara) { TeloFunkcije }

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

Programske paradigme Funkcionalna paradigma

Java i Internet programiranje

Dežurni nastavnik: Kolokvijum traje 1.5 sat, prvih sat vremena nije dozvoljeno napuštanje kolokvijuma. Upotreba literature nije dozvoljena.

Objektno orjentirano programiranje

Programski jezik JAVA PREDAVANJE

Oracle Proprietary Joins Za upite nad više od jedne tabele korišćenjem Oracle proprietary sintakse koristiti join uslov u WHERE izrazu:

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

Strukture Klase i OOP

Lekcija 07 C++ funkcije, stringovi, imenski prostor, memorija i fajlovi. Miljan Milošević

Projektovanje namenskih računarskih struktura

Lekcija 11 Polimorfizam, Apstrakcija, Šabloni. Miljan Milošević

Osnove programskog jezika C#

Lekcija 02 Uslovni iskazi i petlje, Funkcije. Miljan Milošević

VDSL modem Zyxel VMG1312-B10A/B30A

RAČUNARSKI PRAKTIKUM II

Funkcionalna specifikacija

Java Server Pages. 31-Dec-12

Variable Neighborhood Descent - VND (Metoda promenljivog spusta)

Univerzitet u Nišu Građevinsko-arhitektonski fakultet. 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje.

Uvod u relacione baze podataka

Objektno orijentirano programiranje. Auditorne vježbe

Binarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133

Kodiranje GUI aplikacija u Visual C#

12. Uskladištene procedure (Stored Procedures)

2. Linijska algoritamska struktura

KLASIFIKACIJA JELENA JOVANOVIĆ. Web:

1 UVOD U PROGRAMSKI JEZIK JAVA

Numeričke metode i praktikum

RDF, RDFS i JSON-LD. NIKOLA MILIKIĆ URL: nikola.milikic.info

Projektovanje Namenskih Računarskih Struktura 1. Sistemi zasnovani na Androidu

RIP v2. Mr Nenad Krajnović Katedra za telekomunikacije

modifier returnvaluetype methodname(list of parameters) { // Method body; }

Algoritmi i strukture podataka 2. Čas, Uvod u C++

Decorator Adapter Chain of Responsibility Facade Proxy

Objektno orijentirano programiranje proširuje objektnotemeljeno mogućnošću uvoñenja odnosa izmeñu tipova i njihovih podtipova

Java IMI PMF KG OOP 09 AKM. Izuzeci

Ovde će se raditi na funkcijama konverzija: konverzija tipa datuma u znak tip i obrnuto, konverzija broja u karakter tip i obrnuto

Aspektno programiranje u Javi. AOP + AspectJ

GUI - događaji (Events) i izuzeci. Bojan Tomić

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.

Objektno orijentisano programiranje u realnom vremenu na jeziku C++

Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS

OUR KNOWLEDGE FOR YOUR SUCCESS. Iskustva u razvoju i implementaciji ADF aplikacije

Transcription:

PITANJA ZA II KOLOKVIJUM KLASE I OBJEKTI

1. Enkapsulacija je podataka. skrivanje apstrakcija nasledivanje

2. Unutar deklaracije klase navode se: definicije funkcija clanica prototipovi (deklaracije) funkcija clanica

3. Sakrivanje detalja realizacije klase zove se: apstrakcija enkapsulacija polimorfizam

4. Objekat izvedene klase istovremeno je i objekat osnovne klase. Tacno Netacno

5. Skriveni pokazivac na objekat za koji je pozvana funkcija clanica zove se: this that the

6. Funkcija koja ima isto ime kao klasa zove se: funkcija clanica konstruktor metod

7. Objekti klase: imaju sopstvene kopije vrednosti podataka clanova dele zajednicke vrednosti podataka clanova

8. Nasledivanje klasa je nacin na koji se postojeca klasa moze: zameniti prosiriti popraviti ukloniti

9. Konstruktor kopije se poziva u slucaju kada se objekat klase inicijalizuje drugim objektom: iste klase druge klase

10. Kada se objekat vraca kao rezultat funkcije, pravi se njegova privremena kopija. Tacno Netacno

11. Svaka klasa ima konstruktor i destruktor. Tacno Netacno

12. Koje su od sledećih tvrdnji tačne? Podrazumevani konstruktor bez argumenata (eng. default noarg constructor) je automatski obezbeđen ako konstruktor nije jasno definisan u klasi. Najmanje jedan konstruktor mora uvek biti eksplicitno definisan. Konstruktori nemaju povratni tip (engl. return type), čak ni void. Konstruktori moraju da imaju isto ime kao i odgovarajuća klasa. Konstruktori se pozivaju kada se kreira jedan objekat.

13. Analizirati sledeći kôd: #include <iostream> using namespace std; class A { public: int s; A(int news) { s = news; } void print() { cout << s; } }; KLASE I OBJEKTI int main() { A a; a.print(); } Program ima grešku kompilacije, jer klasa A nije javna (engl. public) klasa. Program ima grešku kompilaciju, jer klasa A nema podrazumevani konstruktor (engl. default constructor). Program će se prevesti (engl. compile), pokreće se, ali se ništa ne štampa. Program će se prevesti i pokrenuti ako se A a promeni na A a (5).

14. Šta je pogrešno u sledećem kôdu? #include <iostream> using namespace std; class TempClass { public: int i; TempClass() { int i = 5; } }; int main() { TempClass temp(2); } Program ima grešku prevođenja (engl. compile), jer TempClass nema podrazumevani konstruktor (engl. default constructor). Program ima grešku prevođenja, jer TempClass nema konstruktor sa int argumentom. Program se prevodi, ali se ne izvršava, jer klasa C nije javna (engl. public). Program se prevodi i pokreće bez problema. Nijedno od datih rešenja

15. Ako je data izjava Circle x, koja je od sledećih izjava najpreciznija? x sadrži int vrednost. x je objekat tipa Circle. Može se dodeliti int vrijednost varijabli x x je referenca na objekat Circle. Nijedno od datih rešenja

16. Analizirati sledeći kôd: KLASE I OBJEKTI #include <iostream> using namespace std; class Test { public: int x; Test() { cout << "Test"; } }; int main() { Test test; cout << test.x; } Program ima grešku prevođenja, jer test nije inicijaliziran. Program ima grešku prevođenja jer x nije bio inicijaliziran. Program se pokreće bez problema, ali test.x ima nepredvidivu vrednost. Program ima grešku prevođenja, jer Test nema podrazumevani konstruktor (engl. default constructor). Nijedno od datih rešenja

17. Koje su od sledećih izjava istinite? Lokalne promenljive nemaju podrazumevane vrednosti (engl. default values). Polja podataka u klasi nemaju podrazumevane vrednosti Varijabla primitivnog tipa ima vrednost primitivnog tipa. Naziv objekta je kao konstanta kojoj se ne može može dodeliti novi objekat.

18. Neka su circle1 i circle2 dva Circle objekta. Šta je rezultat izvršavanja sledeće izjave? circle2 = circle1; Kopira sadržaj circle1 u circle2 Čini da circle2 i circle1 postanu isti objekat. Kopira sadržaj circle2 u circle1. Ova izjava nije validna.

19. Koje su od sledećih izjava istinite? Imena objekta su kao imena nizova. Kada se jednom definiše ime objekta, oni referenciraju jedan objekat. Ime objekta se ne može ponovo dodeliti da referencira neki drugi objekat. Naziv objekta je konstanta, iako se sadržaj objekta može promeniti. Objekat je pridružen samom imenu objekta.

20. Koje su od sledećih izjava istinite? Izjava Circle circle = Circle() kreira Circle objekat koristeći konstruktor bez argumenta (engl. no-arg constructor) te kopira svoj sadržaj u circle. Izjava Circle circle = Circle(5) kreira Circle objekat sa radijusom čija je vrednost 5 te kopira svoj sadržaj u circle. Izjavu Circle circle = Circle() bi trebalo zameniti izjavom Circle circle. Izjavu Circle circle = Circle(5) bi trebalo zameniti izjavom Circle circle(5). Nema podrazumevanih vrednosti za polja podataka u klase Nijedno od datih rešenja

21. Analizirati sledeći kôd: KLASE I OBJEKTI #include <iostream> using namespace std; class B { public: B() { }; int k; }; int main() { B b; cout << b.k << endl; return 0; } Program ima grešku prevođenja (engl. compile error), jer se ne može pristupiti b.k Program prikazuje 0. Program prikazuje 1. Program prikazuje nepredvidljiv broj. Program ima grešku kod izvršavanja programa (engl. runtime error), jer b.k nema vrednost.

22. Koje su od sledećih izjava istinite? C ++ omogućava razdvajanje deklaracije klase od njene implementacije. Deklaracija klasa opisuje detalje klase, a implementacija klase detalje implementacije. Deklaracija klasa je jednostavno spisak svih polja podataka, prototipova konstruktora, prototipova funkcija. Implementacija klase implementira konstruktore i funkcije. Deklaracija klasa i implementacija klase se nalaze u dvije odvojene datoteke. Obe datoteke treba da imaju isto ime, ali sa različitim ekstenzijama imena (engl. extension names). Deklaracija klase ima ekstenziju imena.h i datoteka implementacije klase ima ekstenziju imena.cpp.

23. Koje su od sledećih izjava istinite? Simbol :: se zove operator dosega (engl. scope operator). Operator binarnog dosega (engl. binary scope operator) se može koristiti kao ClassName::member da označi prevodiocu da član pripada klasi. Unarni operator dosega (engl. unary scope operator) se može koristiti kao ::var da se pokaže prevodiocu da je neka varijabla globalna varijabla.

24. Dati rezultat sledećeg kôda: #include <iostream> using namespace std; class A { public: int x; int y; int z; A(): x(1), y(2), z(3) { } }; int main() { A a; cout << a.x << " " << a.y << " " << a.z; return 0; } 1 1 1 1 1 2 1 2 3 2 2 2 3 3 3

25. Neka su dvije datoteke zaglavlja (engl. header files) t1.h i t2.h koje sadrže deklaracije za klasu T. Šta će se desiti ako obje uključite u program? Generiše se višestruka greška deklaracije ako datoteke zaglavlja ne uključuju guard operator. Prevodilac će automatski odlučiti koja će implementacija biti korišćena Program će se izvršiti bez problema i koristiće se prva datoteka zaglavlja koja je uključena. Program će se izvršiti bez problema i prva datoteka zaglavlja koja je uključena će se koristiti ako datoteke zaglavlja imaju guard operator.

26. Konstruktori i funkcije su definisane kao inline u klase A. class A { public: A() { value = 0; } A(double); double f1() { // Return a number return value; } double f2(); private: double value; }; A() A(double) f1() f2()

27. Koje su od sledećih izjava istinite? Koristiti ključnu reč private da se obuhvate (engl. encapsulate) polja podataka. Kapsulacija polja podataka omogućava da program bude jednostavan za održavanje. Kapsulacija polja podataka čini program kratkim. Kapsulacija polja podataka pomaže u sprečavanju programskih grešaka. Ako se ne koristi ključna reč public, vidljivost je podrazumevano (engl. default) private.

28. Pretpostavimo da se želi obezbediti aksesor funkcija (engl. accessor function) za bulovsku funkcionalnost finished, koji potpis (engl. signature) funkcije treba izabrati? void getfinished() bool getfinished() bool isfinished() void isfinished()

29. Dati rezultat izvršavanja sledećeg kôda: #include <iostream> using namespace std; class Foo { public: int x; // data field int y; // data field Foo() { x = 10; y = 10; } void p() { int x = 20; // local variable cout << "x je " << x << " "; cout << "y je " << y << endl; } }; int main() { Foo foo; foo.p(); return 0; } x je 10 y je 10 x is 20 y je 20 x is 20 y je 10 x is 10 y je 20

30. Analizirati sledeći kôd: KLASE I OBJEKTI #include <iostream> using namespace std; class B { public: B() { }; private: int k; }; int main() { B b; cout << b.k << endl; return 0; } Program prikazuje 0. Program prikazuje 1. Program prikazuje nepredvidljiv broj. Program ima grešku prevođenja jer se ne može pristupiti b.k Program ima grešku kod izvršavanja (engl. runtime error) jer b.k nema vrednost.

31. Koje su od sledećih izjava tačne? privatni članovi klase moraju se deklarisati pre javnih javnim podacima članovima objekta izvan objekta pristupa se pomoću bilo koje funkcije članice. objekti klase imaju sopstvene kopije vrednosti podataka članova objekti klase dele zajedničke vrednosti podataka članova unutar deklaracije klase navode se prototipovi (deklaracije) funkcija članica klasa može da ima više preklopljenih destruktora.

32. Koje su od sledećih tvrdnji tačne? U jeziku C++ postoji funkcija bez povratnog tipa i argumenata. Podaci članovi ili funkcije članice deklarisani nakon ključne reči private dostupni su funkcijama članicama klase u kojoj su deklarisani. Promenljive deklarisane u telu neke funkcije članice zovu se podaci članovi i mogu se koristiti u svim funkcijama članicama klase. Članovi klase deklarisani kao protected dostupni su svuda gde je objekat klase dostupan. Skriveni pokazivač na objekat za koji je pozvana funkcija članica zove se his Moguće je dodeljivati objekte iste klase jedan drugome

33. Ključna reč označava da se objekat ili promenljiva ne mogu menjati nakon inicijalizacije. konstanta static volatile private no_copy ništa od ponuđenog

34. Koje su od sledećih tvrdnji tačne? klasa može imati više preklopljenih konstruktora. klasa može da ima više konstruktora. destruktor klase može da ima argumente. svaka klasa ima konstruktor i destruktor. sve predhodno davedeno

35. Koje su od sledećih tvrdnji tačne? destruktor klase Primer je Primer : : Primer ( ) ; Potrebno je eksplicitno pozivati destruktor za lokalnu promenljivu. Za svaku klasu mora se napisati konstruktor kopije. Ako se za klasu napiše konstruktor sa argumentima, podrazumevani (default) konstruktor više nije dostupan. Konstruktor kopije se poziva u slučaju kada se objekat klase inicijalizuje drugim objektom. Spajanje (enfl. Concatenation) string objekata može se postići i pomoću operatora +=.

36. Članovi klase deklarisani kao dostupni su samo funkcijama članicama klase. publik protected private ništa od ponuđenog

37. Koje su od sledećih tvrdnji tačne? Nasleđivanje je vrsta ponovnog korišćenja softvera u kome nove klase obuhvataju svojstva i ponašanje postojećih klasa i obogaćuju ih novim mogućnostima. Nasleđivanjem se olakšava ponovno korišćenje softvera koji se dokazao kao kvalitetan. Izvedena klasa ne nasleđuje konstruktore osnovne klase. Konstruktor izvedene klase je dužan da prosledi sve potrebne parametre konstruktoru osnovne klase. Članovi deklarisani kao protected u osnovnoj klasi dostupni su u osnovnoj i izvedenim klasama

38. Kada se kreira objekat izvedene klase, poziva se osnovne klase koji obavlja sve neophodne inicijalizacije podataka članova osnovne klase u objektu izvedene klase. konstruktor konstruktor kopije destruktor konstruktor kopiranja virtualni konstruktor

39. Naznačiti tačne odgovore: KLASE I OBJEKTI Kada se uništava objekat izvedene klase, destruktori se pozivaju u obrnutom redosledu od konstruktora. Ne mogu da se kreiraju objekti apstraktnih klasa Sve virtuelne funkcije u apstraktnoj osnovnoj klasi moraju se deklarisati kao čiste virtuelne funkcije. Ako je u osnovnoj klasi deklarisana čista virtuelna funkcija, onda izvedena klasa mora da implementira tu funkciju da bi bila konkretna klasa. Pokazivačima na objekat osnovne klase može se dodeljivati adresa objekta izvedene klase Ako osnovna klasa ima neku virtuelnu funkciju, onda i njen destruktor treba da bude virtuelan.

40. predstavlja celinu u stvarnom svetu koja može biti jasno identifikovana. klasa objekat funkcija polje podataka (engl. data field)

41. je struktura koja definiše objekte istog tipa. klasa objekat funkcija polje podataka (engl. data field)

42. se poziva kada se želi kreirati objekat. konstruktor funkcija main () funkcija sa povratnim tipom (engl. return type) virtualni konstruktor

43. Object-orijentisano programiranje omogućava izvođenje nove klase od postojećih klasa. To se zove: kapsulacija nasleđivanje generalizacija polimorfizam

KRAJ!