ОО2/К1 2024
К1 2024. године одржан је 22. марта и трајао је 20мин.
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
1. задатак
Шта је све тачно за програмски језик Јава?
- Интерпретирање бајтокода је слабијих перформанси од извршавања машинског кода.
- Јава виртуелна машина представља интерпретер за бајткод.
- Превођењем изворног кода добије се интерпретативни бајткод.
- Имплементација Јавине виртуелне машине је независна од платформе.
- Бајткод зависи од платформе на којој се врши превођење изворног кода.
2. задатак
Које од наведених имплицитних конверзија су дозвољене у програмском језику Јава?
- Конверзија података типа бyте у тип инт
- Конверзија података типа инт у тип лонг
- Конверзија података типа инт у тип схорт
- Конверзија података типа флоат у тип доубле
- Конверзија података типа доубле у тип флоат
3. задатак
Шта исписује следећи програм на програмском језику Јава?
public class Main {
private static void f(Object a, Integer b, int c) {
a = 0;
b = b + 1;
c = c - 1;
}
public static void main(String[] args) {
Integer a = 1, b = 1, c = 1;
f(a, b, c);
System.out.println(a + "," + b + "," + c);
}
}
Одговор: 1,1,1
Објашњење: У Јави се аргументи, укључујући референце преносе по вредности. Тако да су у методи ф копије референци на а и б добиле нове вредности, али не и саме референце а и б
4. задатак
Шта све могу да садрже класе на програмском језику Јава?
- Дескрукторе
- Преклопљене операторске функције
- Дефиниције интерфејса
- Иницијализационе блокове
- Дефиниције класних типова
5. задатак
Шта све може да стоји уместо ### да би се следећи код успешно писан на језику Јава успешно превео?
class B {
B b1;
static B b2;
public static void s() {}
public void m() {}
public static void test() {
###
}
}
Object o = b2m()B.s()Object o = b1b1.m()
6. задатак
Написати наредбу на језику Јава којом се увозе сви типови из пакета пакет Одговор: импорт пакет.*;
7. задатак
Које од следећих тврдњи су тачне за пакете на програмском језику Јава?
- Класе у пакету могу да имају само приватно или јавно право приступа.
- Типови декларисани у изворној датотеци без декларације пакета биће смештени у безимени пакет.
- Декларација пакета
package a.b;може да постоји чак и ако ни у једном фајлу са изворним кодом програма не постоји декларација пакетаpackage a;. - Пакет
java.utilсе увози имплицитно. - Подразумевано право приступа методима је пакетско, а пољима класа приватно.
8. задатак
Шта исписује следећи програм на програмском језику Јава?Уписати НП уколико се програм не преводи.
package test;
class B {
public void m(D x) {
System.out.print(1);
}
}
class D extends B {
public void m(D x) {
System.out.print(2);
}
}
public class Test {
public static void main(String[] args) {
B b = new B();
b.m(new D());
b = new D();
b.m(new D());
}
}
Одговор: 12
Објашњење: Код позива метода се гледа тип објекта, не тип референце
9. задатак
Шта исписује следећи програм на програмском језику Јава?Уписати НП уколико се програм не преводи.
package p;
public class A {
protected int pi;
}
package q;
import p.A;
public class B extends A {
public void m() {
###
}
}
package q;
public class C extends A {}
B b = new B(); b.pi = 1;pi = 1super.pi = 1C c = new C(); c.pi = 1;A a = new A(); a.pi = 1;
Објашњење: Права приступа за референце на објекте који нису тхис је иста за све класе
5. задатак
Да би класа X безусловно подржала клонирање и обезбедила да и изведене класе из ње морају да подрже клонирање, поред тога што треба да имплементира интерфејс Цлонеабле, потребно је и да надјача метод цлоне на начин:
- протецтед X цлоне () {...}
- публиц X цлоне() {...}
- протецтед X цлоне () тхроwс ЦлонеНотСуппортедЕxцептион {...}
- публиц X цлоне () тхроwс ЦлонеНотСуппортедЕxцептион {...}