ОО2/К 2022 — разлика између измена
(Dodata poslednja 3. zadatka) |
м (Formatiranje i ispravke) |
||
(Није приказано 5 међуизмена другог корисника) | |||
Ред 1: | Ред 1: | ||
{{tocright}} | {{tocright}} | ||
'''Колоквијум 2022.''' на РТИ (и осталим ЕР одсецима) одржан је 17. арпила. | '''Колоквијум 2022. године''' на РТИ (и осталим ЕР одсецима) одржан је 17. арпила. Од области дошли су увод, преглед, класе, пакети, извођење, интерфејси, изузеци и угњеждени типови на програмском језику ''Java''. | ||
{{rešenja}} | {{rešenja}} | ||
== 1. задатак == | == 1. задатак == | ||
Која од следећих тврђења су тачна? | Која од следећих тврђења су тачна? (JDK = ''Java Development Kit'', JRE = ''Java Runtime Environment'', JVM = ''Java Virtual Machine'') | ||
(JDK = Java Development Kit, JRE = Java Runtime Environment, JVM = Java Virtual Machine) | |||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# JDK је саставни део JVM | # JDK је саставни део JVM | ||
Ред 19: | Ред 18: | ||
public class Main { | public class Main { | ||
public static void main(String[] args) { | public static void main(String[] args) { | ||
int[] niz1 = new int[] | int[] niz1 = new int[] {0, 1, 2}; | ||
int[] niz2 = new int[ | int[] niz2 = new int[niz1.length]; | ||
int i = niz2. | int i = niz2.length; | ||
for(int x : niz1){ | for (int x : niz1) { | ||
niz2[--i]=x; | niz2[--i] = x; | ||
} | } | ||
for(int x : niz2){ | for (int x : niz2) { | ||
System.out.print(x); | System.out.print(x); | ||
} | } | ||
Ред 31: | Ред 30: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Одговор: <span class="spoiler" data-solution="text">210</span> | '''Одговор:''' <span class="spoiler" data-solution="text">210</span> | ||
== 3. задатак == | == 3. задатак == | ||
Које од следећих тврдњи су тачне за појам конструктора на програмском језику Јава? | Које од следећих тврдњи су тачне за појам конструктора на програмском језику Јава? | ||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# Тело конструктора се извршава пре иницијализације нестатичких | # Тело конструктора се извршава пре иницијализације нестатичких поља (атрибута) објеката. | ||
# <span class="solution">Могуће је дефинисати конструктор са више параметара</span> | # <span class="solution">Могуће је дефинисати конструктор са више параметара</span> | ||
# Аутоматски уграђен (имплицитни) конструктор јавне класе је јаван. | # <span class="solution">Аутоматски уграђен (имплицитни) конструктор јавне класе је јаван.</span> | ||
# <span class="solution">Могуће је дефинисати конструктор без параметара</span> | # <span class="solution">Могуће је дефинисати конструктор без параметара</span> | ||
# Могуће је специфицирати тип | # Могуће је специфицирати тип повратне вредности (тип резултата) конструктора | ||
</div> | </div> | ||
Ред 47: | Ред 45: | ||
Дат је следећи део кода на програмском језику Јава. | Дат је следећи део кода на програмском језику Јава. | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
class B { | public class B { | ||
B b1; | B b1; | ||
static B b2; | static B b2; | ||
Ред 62: | Ред 60: | ||
Изабрати један или више одговора: | Изабрати један или више одговора: | ||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# Наредбом | # Наредбом <code>B b3;</code> се ствара објекат класе <code>B</code>. | ||
# Тек по стварању објекта класе | # Тек по стварању објекта класе <code>B</code> поље <code>b2</code> добија вредност <code>null</code>. | ||
# <span class="solution">По стварању објекта класе | # <span class="solution">По стварању објекта класе <code>B</code> поље <code>b1</code> добија вредност <code>null</code>.</span> | ||
# Програмски код се не преводи, јер класа | # Програмски код се не преводи, јер класа <code>B</code> не може да има дефинисано поље сопственог типа. | ||
# <span class="solution">Променљива | # <span class="solution">Променљива <code>b3</code> типа <code>B</code> није иницијализована.</span> | ||
</div> | </div> | ||
== 5. задатак == | == 5. задатак == | ||
Које тврдње су тачне за пакете на програмском језику Јава? | Које тврдње су тачне за пакете на програмском језику Јава? | ||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# <span class="solution">Могуће је да код једног пакета буде распоређен у више датотека.</span> | # <span class="solution">Могуће је да код једног пакета буде распоређен у више датотека.</span> | ||
# <span class="solution">Уколико пакет | # <span class="solution">Уколико пакет <code>A</code> и пакет <code>B</code> садрже име типа <code>X</code> могуће је у исту датотеку увести све типове из пакета <code>A</code> и све типове из пакета <code>B</code> наредбама <code>import A.*; import B.*;</code>.</span> | ||
# У једној датотеци може да буде дефинисано више класа које припадају различитим пакетима. | # У једној датотеци може да буде дефинисано више класа које припадају различитим пакетима. | ||
# <span class="solution">Пакети се користе за групсиање логички повезаних интерфејса и класа.</span> | # <span class="solution">Пакети се користе за групсиање логички повезаних интерфејса и класа.</span> | ||
# <span class="solution">Пакет | # <span class="solution">Пакет <code>java.lang</code> се увози имплицитно.</span> | ||
</div> | </div> | ||
== 6. задатак == | == 6. задатак == | ||
Које од следећих тврдњи су тачне за програмски језик Јава? | Које од следећих тврдњи су тачне за програмски језик Јава? | ||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# <span class="solution">Могу да се стварају објекти класе означени модификатором | # <span class="solution">Могу да се стварају објекти класе означени модификатором <code>final</code></span>. | ||
# Сви чланови класе која је означена модификатором | # Сви чланови класе која је означена модификатором <code>final</code> имплицитно постају <code>final</code>. | ||
# Ако се сви методи класе означе модификатором | # Ако се сви методи класе означе модификатором <code>final</code>, то је потпуно исто као да је класа означена модификатором <code>final</code>. | ||
# Класа | # Класа <code>java.lang.Object</code> је означена модификатором <code>final</code>. | ||
# <span class="solution">Класа може да буде означена модификатором | # <span class="solution">Класа може да буде означена модификатором <code>final</code> чиме се проглашава коначном и спречава њено проширивање.</span> | ||
</div> | </div> | ||
Ред 95: | Ред 90: | ||
Којим програмским кодом се може заменити део кода означен са <code>###</code> да би се дати изборни код написан на програмском језику Јава успешно превео? | Којим програмским кодом се може заменити део кода означен са <code>###</code> да би се дати изборни код написан на програмском језику Јава успешно превео? | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
class B{} | class B {} | ||
public class D extends B { | |||
public class D extends B{ | public D() { | ||
#### | |||
} | |||
public static void main(String[] arg) {} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# | # <syntaxhighlight lang="java" inline class="solution">super();</syntaxhighlight> | ||
# <syntaxhighlight lang="java" inline>Object o = super;</syntaxhighlight> | # <syntaxhighlight lang="java" inline>Object o = super;</syntaxhighlight> | ||
# <syntaxhighlight lang="java" inline>String s = super.super.toString();</syntaxhighlight> | # <syntaxhighlight lang="java" inline>String s = super.super.toString();</syntaxhighlight> | ||
# <syntaxhighlight lang="java" inline>B b = (B) super;</syntaxhighlight> | # <syntaxhighlight lang="java" inline>B b = (B) super;</syntaxhighlight> | ||
# | # <syntaxhighlight lang="java" inline class="solution">String s = super.toString();</syntaxhighlight> | ||
</div> | </div> | ||
Ред 117: | Ред 110: | ||
Шта исписује следећи програмски код на језику Јава? Уписати 0 ако се код не преводи. | Шта исписује следећи програмски код на језику Јава? Уписати 0 ако се код не преводи. | ||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
interface A { default void m() { System.out.println("A.m()"); } } | |||
interface B { default void m() { System.out.println("B.m()"); } } | |||
public class X implements A, B { | public class X implements A, B { | ||
public void m() { System.out.println("X.m()"); } | |||
public static void main(String args[]) { | |||
X x = new X(); | |||
x.m(); | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Ред 131: | Ред 124: | ||
== 9. задатак == | == 9. задатак == | ||
Које од следећих тврдњи су тачне за програмски језик Јава? | Које од следећих тврдњи су тачне за програмски језик Јава? | ||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# <span class="solution">Изузеци на језику Јава су искључиво објекти класних типова.</span> | # <span class="solution">Изузеци на језику Јава су искључиво објекти класних типова.</span> | ||
Ред 143: | Ред 134: | ||
== 10. задатак == | == 10. задатак == | ||
Које од следећих тврдњи су тачне за програмски језик Јава? | Које од следећих тврдњи су тачне за програмски језик Јава? | ||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# <span class="solution">У дефиницији циља ламбда израза користи се функцијски интерфејс.</span> | # <span class="solution">У дефиницији циља ламбда израза користи се функцијски интерфејс.</span> | ||
# <span class="solution">Ламбда израз описује тело метода аутоматски генерисане анонимне класе која имплементира интерфејс које декларише искључиво једна апстрактна | # <span class="solution">Ламбда израз описује тело метода аутоматски генерисане анонимне класе која имплементира интерфејс које декларише искључиво једна апстрактна метода.</span> | ||
# Ламдба израз описује тело метода аутоматски генерисане анонимне класе која проширује апстрактну класу која декларише искључиво један апстрактни метод. | # Ламдба израз описује тело метода аутоматски генерисане анонимне класе која проширује апстрактну класу која декларише искључиво један апстрактни метод. | ||
# На месту дефинисања ламбда израза врши се његово израчинавање. | # На месту дефинисања ламбда израза врши се његово израчинавање. | ||
# Аутоматски генерисана анонимна класа ламбда израза имплицитно проширује класу | # Аутоматски генерисана анонимна класа ламбда израза имплицитно проширује класу <code>java.lang.Lambda</code>. | ||
</div> | </div> | ||
[[Категорија:ОО2]] | [[Категорија:ОО2]] | ||
[[Категорија:Рокови]] | [[Категорија:Рокови]] |
Тренутна верзија на датум 9. фебруар 2023. у 02:38
Колоквијум 2022. године на РТИ (и осталим ЕР одсецима) одржан је 17. арпила. Од области дошли су увод, преглед, класе, пакети, извођење, интерфејси, изузеци и угњеждени типови на програмском језику Java.
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
1. задатак
Која од следећих тврђења су тачна? (JDK = Java Development Kit, JRE = Java Runtime Environment, JVM = Java Virtual Machine)
- JDK је саставни део JVM
- JVM је саставни део JRE
- JRE је саставни део JDK
- JRE је саставни део JVM
- JDK је саставни део JRE
2. задатак
Шта исписује следећи програмски код на језику Јава? За програм који не се преводи унети -1. За програм са грешком у извршавању унети -2.
public class Main {
public static void main(String[] args) {
int[] niz1 = new int[] {0, 1, 2};
int[] niz2 = new int[niz1.length];
int i = niz2.length;
for (int x : niz1) {
niz2[--i] = x;
}
for (int x : niz2) {
System.out.print(x);
}
}
}
Одговор: 210
3. задатак
Које од следећих тврдњи су тачне за појам конструктора на програмском језику Јава?
- Тело конструктора се извршава пре иницијализације нестатичких поља (атрибута) објеката.
- Могуће је дефинисати конструктор са више параметара
- Аутоматски уграђен (имплицитни) конструктор јавне класе је јаван.
- Могуће је дефинисати конструктор без параметара
- Могуће је специфицирати тип повратне вредности (тип резултата) конструктора
4. задатак
Дат је следећи део кода на програмском језику Јава.
public class B {
B b1;
static B b2;
public void f() {
B b3;
}
public static void main(String args[]) {
new B();
}
}
Која од следећих тврђења су тачна?
Изабрати један или више одговора:
- Наредбом
B b3;
се ствара објекат класеB
. - Тек по стварању објекта класе
B
пољеb2
добија вредностnull
. - По стварању објекта класе
B
пољеb1
добија вредностnull
. - Програмски код се не преводи, јер класа
B
не може да има дефинисано поље сопственог типа. - Променљива
b3
типаB
није иницијализована.
5. задатак
Које тврдње су тачне за пакете на програмском језику Јава?
- Могуће је да код једног пакета буде распоређен у више датотека.
- Уколико пакет
A
и пакетB
садрже име типаX
могуће је у исту датотеку увести све типове из пакетаA
и све типове из пакетаB
наредбамаimport A.*; import B.*;
. - У једној датотеци може да буде дефинисано више класа које припадају различитим пакетима.
- Пакети се користе за групсиање логички повезаних интерфејса и класа.
- Пакет
java.lang
се увози имплицитно.
6. задатак
Које од следећих тврдњи су тачне за програмски језик Јава?
- Могу да се стварају објекти класе означени модификатором
final
. - Сви чланови класе која је означена модификатором
final
имплицитно постајуfinal
. - Ако се сви методи класе означе модификатором
final
, то је потпуно исто као да је класа означена модификаторомfinal
. - Класа
java.lang.Object
је означена модификаторомfinal
. - Класа може да буде означена модификатором
final
чиме се проглашава коначном и спречава њено проширивање.
7. задатак
Којим програмским кодом се може заменити део кода означен са ###
да би се дати изборни код написан на програмском језику Јава успешно превео?
class B {}
public class D extends B {
public D() {
####
}
public static void main(String[] arg) {}
}
super();
Object o = super;
String s = super.super.toString();
B b = (B) super;
String s = super.toString();
8. задатак
Шта исписује следећи програмски код на језику Јава? Уписати 0 ако се код не преводи.
interface A { default void m() { System.out.println("A.m()"); } }
interface B { default void m() { System.out.println("B.m()"); } }
public class X implements A, B {
public void m() { System.out.println("X.m()"); }
public static void main(String args[]) {
X x = new X();
x.m();
}
}
Одговор: X.m()
9. задатак
Које од следећих тврдњи су тачне за програмски језик Јава?
- Изузеци на језику Јава су искључиво објекти класних типова.
- Објекти класе Throwable садрже ниску која служи да се њом опише одговарајућа изузетна ситуација.
- Изузеци на језику Јава могу да буду примитивних типова.
- Сви типови изузетака морају да буду изведени из класе Exception или њених поткласа.
- Сви типови изузетака морају да буду из класе Throwable или њених поткласа.
10. задатак
Које од следећих тврдњи су тачне за програмски језик Јава?
- У дефиницији циља ламбда израза користи се функцијски интерфејс.
- Ламбда израз описује тело метода аутоматски генерисане анонимне класе која имплементира интерфејс које декларише искључиво једна апстрактна метода.
- Ламдба израз описује тело метода аутоматски генерисане анонимне класе која проширује апстрактну класу која декларише искључиво један апстрактни метод.
- На месту дефинисања ламбда израза врши се његово израчинавање.
- Аутоматски генерисана анонимна класа ламбда израза имплицитно проширује класу
java.lang.Lambda
.