ОО2/К 2023 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
(Dodat 10. zadatak)
м (→‎10. zadatak: Ispravka ponuđenih rešenja)
 
(Нису приказане 2 међуизмене 2 корисника)
Ред 6: Ред 6:
Којом командом се следећи програмски код написан у фајлу са именом "Pozdrav.java" преводи и креира бајткод "Pozdrav.class"?
Којом командом се следећи програмски код написан у фајлу са именом "Pozdrav.java" преводи и креира бајткод "Pozdrav.class"?
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
//Pozdrav.java
// Pozdrav.java
public class Pozdrav {
public class Pozdrav {
     public static void main(String[] args) {
     public static void main(String[] args) {
Ред 14: Ред 14:
</syntaxhighlight>
</syntaxhighlight>
<div class="abc-list" data-solution="single">
<div class="abc-list" data-solution="single">
# java Pozdrav
# <code>java Pozdrav</code>
# java Pozdrav.java
# <code>java Pozdrav.java</code>
# <span class="solution">javac Pozdrav.java</span>
# <code class="solution">javac Pozdrav.java</code>
# javac Pozdrav.class
# <code>javac Pozdrav.class</code>
</div>
</div>


== 2. zadatak ==
== 2. zadatak ==
Која од следећих тврђења су тачна за програмски језик ''Java''?
Која од следећих тврђења су тачна за програмски језик ''Java''?
Изаберите један или више одговора:
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# <span class="solution">'''goto''' је резервисана реч и не може се користити за име порменљиве.</span>
# <span class="solution"><code>goto</code> је резервисана реч и не може се користити за име променљиве.</span>
# '''foreach''' је резервисана реч и користи се у инструкцији петље за обилазак свих елемената низа.
# <code>foreach</code> је резервисана реч и користи се у инструкцији петље за обилазак свих елемената низа.
# <span class="solution">'''final''' је резервисана реч и не може се користити за име порменљиве.</span>
# <span class="solution"><code>final</code> је резервисана реч и не може се користити за име променљиве.</span>
# <span class="solution">'''const''' је резервисана реч и не може се користити за име порменљиве.</span>
# <span class="solution"><code>const</code> је резервисана реч и не може се користити за име променљиве.</span>
# '''const''' је резервисана реч која може да се користи алтернативно са резервисаном речју '''final'''.  
# <code>const</code> је резервисана реч која може да се користи алтернативно са резервисаном речју <code>final</code>.
</div>
</div>


== 3. zadatak ==
== 3. zadatak ==
Не узимајући у обзир угњеждене и обухватајуће (спољашње) класе, спојити наведене модификаторе права приступа са њиховим одговарајућим описом на програмском језику ''Java''?
Не узимајући у обзир угњеждене и обухватајуће (спољашње) класе, спојити наведене модификаторе права приступа са њиховим одговарајућим описом на програмском језику ''Java''?
<div class="abc-list" data-solution="select" data-options="Изабери..., Члан је доступан само у коду датог пакета. , Члан је доступан само у класи у којој је дефенисан., Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан., Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.">
<div class="abc-list" data-solution="select" data-options="Члан је доступан само у коду датог пакета, Члан је доступан само у класи у којој је дефинисан, Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан, Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан">
# (без модификатора, подразумевано) <span class="spoiler">Члан је доступан само у коду датог пакета.</span>
# (без модификатора, подразумевано) <span class="spoiler">Члан је доступан само у коду датог пакета</span>
# private <span class="spoiler">Члан је доступан само у класи у којој је дефенисан.</span>
# <code>private</code> <span class="spoiler">Члан је доступан само у класи у којој је дефинисан</span>
# public <span class="spoiler">Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан.</span>
# <code>public</code> <span class="spoiler">Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан</span>
# protected <span class="spoiler">Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.</span>
# <code>protected</code> <span class="spoiler">Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан</span>
</div>
</div>


== 4. zadatak ==
== 4. zadatak ==
Која од следећих тврђења су тачна за кључну реч '''this''' на програмском језику ''Java''?
Која од следећих тврђења су тачна за кључну реч <code>this</code> на програмском језику ''Java''?
 
Изаберите један или више одговора:
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# <span class="solution">Може да се користи за позив другог конструктора исте класе.</span>
# <span class="solution">Може да се користи за позив другог конструктора исте класе.</span>
Ред 52: Ред 48:
# <span class="solution">Представља референцу на објекат коме се управо приступа.</span>
# <span class="solution">Представља референцу на објекат коме се управо приступа.</span>
</div>
</div>
== 5. zadatak ==
== 5. zadatak ==
Која од следећих тврђења су тачна на програмском језику ''Java''?
Која од следећих тврђења су тачна на програмском језику ''Java''?
Изаберите један или више одговора:
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# <span class="solution">У неком фајлу са изворним кодом једног програма може да постоји декларација '''package p.sp;''' иако ни у једном фајлу истог програма не постоји декларација '''package p;'''</span>
# <span class="solution">У неком фајлу са изворним кодом једног програма може да постоји декларација <code>package p.sp;</code> иако ни у једном фајлу истог програма не постоји декларација <code>package p;</code></span>
# <span class="solution">Могуће је дефинисати тип '''А''' у пакету '''p''' уколико је истоимени тип већ дефинисан у пакету '''p.sp'''.</span>
# <span class="solution">Могуће је дефинисати тип <code>А</code> у пакету <code>p</code> уколико је истоимени тип већ дефинисан у пакету <code>p.sp</code>.</span>
# Уколико постоје пакети '''p''' и '''p.sp''' увођењем свих чланова пакета '''p''' наредбом '''import p.*;''' уводе се и сви чланови пакета '''p.sp'''.
# Уколико постоје пакети <code>p</code> и <code>p.sp</code> увођењем свих чланова пакета <code>p</code> наредбом <code>import p.*;</code> уводе се и сви чланови пакета <code>p.sp</code>.
# <span class="solution">Типови подата у изворној датотеци без декларације пакета биће смештани у безимени (''default'') пакет.</span>
# <span class="solution">Типови података у изворној датотеци без декларације пакета биће смештани у безимени (''default'') пакет.</span>
#Могуће је приступити члану са пакетски правом приступа класе '''А''' дефинисане у пакету '''p''' из метода класе '''В''' дефинисане у пакету '''p.sp'''.
# Могуће је приступити члану са пакетски правом приступа класе <code>А</code> дефинисане у пакету <code>p</code> из метода класе <code>В</code> дефинисане у пакету <code>p.sp</code>.
</div>
</div>
== 6. zadatak ==
== 6. zadatak ==
Шта исписује следећи програм на прогрмаском језику ''Java''? Уписати '''NP''' ако се програм не преводи.
Шта исписује следећи програм на програмском језику ''Java''? Уписати '''NP''' ако се програм не преводи.
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
class B {
class B {
Ред 87: Ред 83:
}
}
</syntaxhighlight>
</syntaxhighlight>
Odgovor: <span class="spoiler" data-solution="text">11</span>
'''Odgovor:''' <span class="spoiler" data-solution="text">11</span>


Objašnjenje: <span class="spoiler" data-solution="explanation">Ovde se primenjuje overloading, a ne overriding.</span>
'''Objašnjenje:''' <span class="spoiler" data-solution="explanation">Ovde se primenjuje ''overloading'', a ne ''overriding''.</span>


== 7. zadatak ==
== 7. zadatak ==
Шта исписује следећи програм на прогрмаском језику ''Java''? Уписати '''NP''' ако се програм не преводи.
Шта исписује следећи програм на програмском језику ''Java''? Уписати '''NP''' ако се програм не преводи.
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
interface I {
interface I {
Ред 122: Ред 118:


== 8. zadatak ==
== 8. zadatak ==
За сваки од следећих програма  на језику ''Java'' навести да ли се преводи или не.
<div class="abc-list" data-solution="select" data-options="Преводи се, Не преводи се">
# <syntaxhighlight lang="java">
public class Main {
    public static void f() {
        throw new Exception();
    }
    public static void main(String args[]) {
        f();
    }
}
</syntaxhighlight> <span class="spoiler">Не преводи се</span>
# <syntaxhighlight lang="java">
public class Main {
    public static void f() {
        throw new Exception();
    }
    public static void main(String args[]) {
        try {
            f();
        } catch (Exception e) {}
    }
}
</syntaxhighlight><span class="spoiler">Не преводи се</span>
# <syntaxhighlight lang="java">
public class Main {
    public static void main(String args[]) {
        try {
            throw new Exception();
        } catch (Exception e) {}
    }
}
</syntaxhighlight><span class="spoiler">Преводи се</span>
</div>


== 9. zadatak ==
== 9. zadatak ==
Које дефиниције угњеждених типова на језику ''Java'' су исправне?
Које дефиниције угњеждених типова на језику ''Java'' су исправне?
Изаберите један или више одговора:
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# <span class="solution">static class C {}</span>
# <syntaxhighlight lang="java" inline class="solution">static class C {}</syntaxhighlight>
# <span class="solution">abstract class C {}</span>
# <syntaxhighlight lang="java" inline class="solution">abstract class C {}</syntaxhighlight>
# local class C {}
# <syntaxhighlight lang="java" inline>local class C {}</syntaxhighlight>
# <span class="solution"> class C {}</span>
# <syntaxhighlight lang="java" inline class="solution">class C {}</syntaxhighlight>
# <span class="solution"> final class C {}</span>
# <syntaxhighlight lang="java" inline class="solution">final class C {}</syntaxhighlight>
# <span class="solution"> static interface I {}</span>
# <syntaxhighlight lang="java" inline class="solution">static interface I {}</syntaxhighlight>
# annonymous class {}
# <syntaxhighlight lang="java" inline>anonymous class {}</syntaxhighlight>
# <span class="solution"> interface I {}</span>
# <syntaxhighlight lang="java" inline class="solution">interface I {}</syntaxhighlight>
</div>
</div>
== 10. zadatak ==
== 10. zadatak ==
Шта може да стоји уместо ### да би следећи код написан на језику ''Java'' успешно превео?
Шта може да стоји уместо ### да би се следећи код написан на језику ''Java'' успешно превео?
 
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
interface I {
interface I {
Ред 154: Ред 183:


<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# <syntaxhighlight lang="java">I c = (double a) -> a + b;</syntaxhighlight>
# <syntaxhighlight lang="java" inline>I c = (double a) -> a + b;</syntaxhighlight>
# <span class="solution"><syntaxhighlight lang="java">I c = (int a) -> a + b;</syntaxhighlight></span>
# <syntaxhighlight lang="java" inline class="solution">I c = (int a) -> a + b;</syntaxhighlight>
# <span class="solution"><syntaxhighlight lang="java">I c = (int a) -> {a*a; return a;}</syntaxhighlight></span>
# <syntaxhighlight lang="java" inline class="solution">I c = (int a) -> { a = a * a; return a; }</syntaxhighlight>
# <syntaxhighlight lang="java">I c = (int a) -> {b--; return a + b;}</syntaxhighlight>
# <syntaxhighlight lang="java" inline>I c = (int a) -> { b--; return a + b; }</syntaxhighlight>
# <syntaxhighlight lang="java">I c = (int a) -> { double r = a + b; return r;}</syntaxhighlight>
# <syntaxhighlight lang="java" inline>I c = (int a) -> { double r = a + b; return r; }</syntaxhighlight>


[[Категорија:Рокови]]
[[Категорија:Рокови]]
[[Категорија:ОО2]]
[[Категорија:ОО2]]

Тренутна верзија на датум 4. мај 2023. у 21:05

Колоквијум 2023. godine на РТИ (и осталим ЕР одсецима) одржан је 22. арпила У 9:15 часова (постојала је само једна група). Од области дошли су увод, преглед, класе, пакети, извођење, интерфејси, изузеци и угњеждени типови на програмском језику Java.

  • За питања са више одговора, тачни одговори су подебљани и уоквирени
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
  • Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:

1. zadatak

Којом командом се следећи програмски код написан у фајлу са именом "Pozdrav.java" преводи и креира бајткод "Pozdrav.class"?

// Pozdrav.java
public class Pozdrav {
     public static void main(String[] args) {
          System.out.print("Zdravo!");
     }
}
  1. java Pozdrav
  2. java Pozdrav.java
  3. javac Pozdrav.java
  4. javac Pozdrav.class

2. zadatak

Која од следећих тврђења су тачна за програмски језик Java?

  1. goto је резервисана реч и не може се користити за име променљиве.
  2. foreach је резервисана реч и користи се у инструкцији петље за обилазак свих елемената низа.
  3. final је резервисана реч и не може се користити за име променљиве.
  4. const је резервисана реч и не може се користити за име променљиве.
  5. const је резервисана реч која може да се користи алтернативно са резервисаном речју final.

3. zadatak

Не узимајући у обзир угњеждене и обухватајуће (спољашње) класе, спојити наведене модификаторе права приступа са њиховим одговарајућим описом на програмском језику Java?

  1. (без модификатора, подразумевано) Члан је доступан само у коду датог пакета
  2. private Члан је доступан само у класи у којој је дефинисан
  3. public Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан
  4. protected Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан

4. zadatak

Која од следећих тврђења су тачна за кључну реч this на програмском језику Java?

  1. Може да се користи за позив другог конструктора исте класе.
  2. Може да се проследи као ствaрни аргумент неком методу.
  3. Користи се имплицитно (без навођења) као референца на текући објекат приликом директног именовања нестатичких чланова класе.
  4. Може да се користи као референца унутар статичких метода.
  5. Представља референцу на објекат коме се управо приступа.

5. zadatak

Која од следећих тврђења су тачна на програмском језику Java?

  1. У неком фајлу са изворним кодом једног програма може да постоји декларација package p.sp; иако ни у једном фајлу истог програма не постоји декларација package p;
  2. Могуће је дефинисати тип А у пакету p уколико је истоимени тип већ дефинисан у пакету p.sp.
  3. Уколико постоје пакети p и p.sp увођењем свих чланова пакета p наредбом import p.*; уводе се и сви чланови пакета p.sp.
  4. Типови података у изворној датотеци без декларације пакета биће смештани у безимени (default) пакет.
  5. Могуће је приступити члану са пакетски правом приступа класе А дефинисане у пакету p из метода класе В дефинисане у пакету p.sp.

6. zadatak

Шта исписује следећи програм на програмском језику Java? Уписати NP ако се програм не преводи.

class B {
    public void f(B x) {
        System.out.println(1);
    }
}

class D extends B {
    public void f(D x) {
        System.out.println(2);
    }
}

public class Test {
    public static void main(String args[]) {
        B b = new B();
        b.f(new D());
        b = new D();
        b.f(new D());
    }
}

Odgovor: 11

Objašnjenje: Ovde se primenjuje overloading, a ne overriding.

7. zadatak

Шта исписује следећи програм на програмском језику Java? Уписати NP ако се програм не преводи.

interface I {
    static void f() {
        System.out.println(1);
    }
}

class B {
    public void f() {
        System.out.println(2);
    }
}

class D extends B implements I {
    public D() {
        I.f();
        f();
    }
}

public class Test {
    public static void main(String args[]) {
        new D();
    }
}

Odgovor: 12

8. zadatak

За сваки од следећих програма на језику Java навести да ли се преводи или не.

  1. public class Main {
        public static void f() {
            throw new Exception();
        }
        public static void main(String args[]) {
            f();
        }
    }
    
    Не преводи се
  2. public class Main {
        public static void f() {
            throw new Exception();
        }
        public static void main(String args[]) {
            try {
                f();
            } catch (Exception e) {}
        }
    }
    
    Не преводи се
  3. public class Main {
        public static void main(String args[]) {
            try {
                throw new Exception();
            } catch (Exception e) {}
        }
    }
    
    Преводи се

9. zadatak

Које дефиниције угњеждених типова на језику Java су исправне?

  1. static class C {}
  2. abstract class C {}
  3. local class C {}
  4. class C {}
  5. final class C {}
  6. static interface I {}
  7. anonymous class {}
  8. interface I {}

10. zadatak

Шта може да стоји уместо ### да би се следећи код написан на језику Java успешно превео?

interface I {
    int f(int a);
}

public class Test {
    public static void main(String args[]) {
        int b = 3;
        ###
    }
}
  1. I c = (double a) -> a + b;
  2. I c = (int a) -> a + b;
  3. I c = (int a) -> { a = a * a; return a; }
  4. I c = (int a) -> { b--; return a + b; }
  5. I c = (int a) -> { double r = a + b; return r; }