User Tools

Site Tools


Problem constructing authldap
test:test_2019

Test grilă ianuarie 2019

Prin acest test am urmărit verificarea înțelegerii conceptelor de bază studiate la laborator, în special cum se aplică conceptele OOP în Java (polimorfism, moștenire, agregare, constructori, abstractizare), structurile de date cu care puteți lucra în Java și utilitatea design patterns.

Au fost 10 de întrebări, 4 variante de răspuns, un singur răspuns corect. Cele 2 serii CA și CD au dat testul în serii diferite și au avut subiecte diferite.

Metoda de evaluare: grilă franceză, -1/10 din punctajul unei întrebări la răspuns greșit, 0 dacă nu este marcat niciun răspuns.

Subiectele seriei CA

1. Care dintre urmatoarele afirmații sunt adevarate despre pachete în Java? 1) Orice clasă aparține unui pachet 2) Toate clasele dintr-un fișier aparțin aceluiași pachet 3) Daca nu se specifică niciun pachet, clasele vor aparține unui pachet special făra nume 4) Daca nu se specifică niciun pachet, se creează un nou pachet cu numele folderului în care se află clasa, iar aceasta va aparține acestui pachet

  • 1, 2, 4
  • 1, 2, 3
  • 1, 3
  • 2, 4

2. Care este rezultatul programului?

public class Fruit {
    Fruit() {
        System.out.print(" Fruit ");
    }
 
    public static void main(String[] args) {
        Fruit cherry = new Cherry(" Sour ");
    }
}
 
class Cherry extends Fruit {
    Cherry() {
        System.out.print(" Cherry ");
    }
 
    Cherry(String type) {
        this();
        System.out.print(type + " Cherry ");
    }
}
  • Fruit Cherry Sour Cherry
  • Fruit Sour Cherry
  • Cherry Sour Cherry
  • Sour Cherry Cherry Fruit

3. Câte interfețe poate extinde o interfață în Java?

  • una singura
  • oricâte
  • o interfață implementează alte interfețe, nu le extinde
  • niciuna

4. De câte ori se realizează method overriding (suprascriere) și de câte ori method overloading (supraîncarcare)?

class Dog {
    void bark() {
        System.out.println("This dog is barking...");
    }
}
 
class Husky extends Dog {
    void bark() {
        System.out.println("Husky is barking...");
    }
 
    void bark(int time) {
        System.out.println("Husky is barking for "+time+" minutes");
    }
 
    int bark(String food) {
        System.out.println("Husky wants " + food);
        return 0;
    }
}
  • 1 overriding si 2 overloading
  • 2 overriding si 1 overloading
  • 1 overriding si 1 overloading
  • 3 overriding si 1 overloading

5. Ce afișează următorul program?

public class Coffee {
    public static void main(String[] args) {
 
        CoffeeMaker coffeemaker = new StarbucksCoffeeMaker();
        Coffee espresso = new Espresso();
        Cappuccino cappuccino = new Cappuccino();
 
        coffeemaker.makeCoffee(espresso);
        coffeemaker.makeCoffee(cappuccino);
    }
}
 
class Espresso extends Coffee {
}
 
class Cappuccino extends Coffee {
}
 
class CoffeeMaker {
    public void makeCoffee(Coffee coffee) {
        System.out.println("Making coffee");
    }
 
    public void makeCoffee(Espresso coffee) {
        System.out.println("Making espresso");
    }
 
    public void makeCoffee(Cappuccino coffee) {
        System.out.println("Making cappuccino");
    }
}
 
class StarbucksCoffeeMaker extends CoffeeMaker {
    public void makeCoffee(Espresso coffee) {
        System.out.println("Making sugar espresso");
    }
 
    public void makeCoffee(Cappuccino coffee) {
        System.out.println("Making sugar cappuccino");
    }
}
  • Making coffee

Making sugar cappuccino

  • Making espresso
    Making cappuccino
  • Making sugar espresso
    Making sugar cappuccino
  • Making coffee
    Making cappuccino

6. Care este valoarea de adevar a următoarelor afirmații? Clasele interne îmbunătățesc încapsularea. Clasele interne anonime trebuie să definească explicit constructorul fără parametri.

  • Adevarat, Adevarat
  • Adevarat, Fals
  • Fals, Adevarat
  • Fals, Fals

7. Care dintre următoarele colecții nu sunt iterabile (nu implementează patternul Iterable oferit în Java prin interfața Iterable)?

  • ArrayList
  • HashMap
  • Queue
  • Set

8. Ce afișează următorul program?

class Test {
    public static void main(String[] args) {
        System.out.println(breakingStuff());
    }
 
    public static int breakingStuff() {
        try {
            try {
                throw new Exception();
            } catch (Exception e) {
                return 1;
            } finally {
                return 2;
            }
 
        } catch (Exception e) {
            return 3;
        } finally {
            return 4;
        }
    }
}
  • 1
  • 2
  • 3
  • 4

9. Visitor Pattern si Observer Pattern, din punct de vedere al clasificării Gang of Four, sunt:

  • Visitor este un design pattern behavioural, iar Observer este structural
  • Visitor este un design pattern structural, iar Observer este behavioural
  • ambele sunt behavioural
  • ambele sunt structural

10. Stabiliți valoarea de adevăr a următoarelor propoziții: Metodele statice nu pot fi suprascrise. Clasele interne statice nu pot fi extinse.

  • Fals, Fals
  • Fals, Adevarat
  • Adevarat, Fals
  • Adevarat, Adevarat

Subiectele seriei CD

1. Ce va afișa următorul program?

class Test {
    public static void main(String args[]) {
        String s1 = "Wow, am luat 10 la grila la POO!";
        String s2 = new String(s1);
        System.out.println((s1 == s2) + " " + s1.equals(s2));
    }
}
  • true true
  • false false
  • true false
  • false true

2. Care dintre urmatoarele afirmații este corectă?

  • Cuvântul final în fața unei metode arată faptul că acea metoda poate fi apelată doar în clasa respectivă
  • O clasa final nu poate fi instanțiată
  • Cuvantul final în fața unei variabile arată că acea variabilă poate fi assignata o singura dată
  • Toate cele de mai sus

3. Care dintre urmatoarele afirmații despre clase abstracte în Java sunt FALSE: 1) Daca derivăm o clasa abstractă și nu implementam toate metodele abstracte, atunci clasa derivată trebuie de asemenea sa fie abstractă 2) Clasele abstracte pot avea constructori 3) O clasă nu poate fi abstractă făra o metoda abstractă 4) O clasă abstractă poate moșteni de la mai multe clase abstracte

  • 1, 2
  • 1, 3
  • 3, 4
  • 1, 3, 4

4. Se dau următoarele clase:

class Lion {}
class LionKing extends Lion {}
class SimulateAnimal {
        protected Lion roar(char a) { //do stuff }
}
class Game extends SimulateAnimal {
        // TODO suprascriere roar
}

Care dintre următoarele reprezintă o suprascriere corectă a metodei roar?

  • protected LionKing roar(int a)
  • private Lion roar(char a)
  • public LionKing roar(char a)
  • public LionKing roar(char a, int b)

5. Ce afișează următorul program?

class Dacia {
    String model = "duster";
 
    public Dacia() {
        printModel();
    }
 
    void printModel() {
        System.out.print(model);
    }
}
 
public class Ferrari extends Dacia {
    String series = "f40";
 
    void printModel() {
        System.out.print(series);
    }
 
    public static void main(String[] args) {
        Ferrari myCar = new Ferrari();
    }
}
  • duster
  • f40
  • null
  • duster f40

6. Care este valoarea de adevar a următoarelor afirmații? O clasa internă anonimă poate extinde o singură clasă sau poate implementa o singură interfață. O clasă internă metodelor nu poate fi abstractă.

  • Adevarat, Adevarat
  • Adevarat, Fals
  • Fals, Adevarat
  • Fals, Fals

7. Care afirmație despre LinkedHashSet din API-ul Java pentru colecții este adevarată?

  • nu există clasa LinkedHashSet
  • pastrează ordinea de inserare a elementelor și nu permite duplicate
  • pastrează perechi de forma (Key, Value) și permite duplicate
  • este o listă simplu înlănțuită unde fiecare element este o pereche (Key, Value)

8. Fie:

class A {
        public int x = 0;
}
 
public A foo() {
        A a = new A();
        try {
                a.x = 1;
                throw new NullPointerException();
        } catch (Exception e) {
                a.x = 2;
                return a;
        } finally {
                a.x = 3;
        }
}

Ce se întâmplă la:

A a = foo();
System.out.println(a.x);
  • 1
  • 2
  • 3
  • excepție NullPointerException neprinsă, catch-ul prinde doar excepțiile checked

9. Observer Pattern si Singleton Pattern, din punct de vedere al clasificării Gang of Four, sunt:

  • Observer este un design pattern behavioural, iar Singleton este structural
  • Observer este un design pattern structural, iar Singleton este behavioural
  • Observer este un design pattern behavioural, iar Singleton este creational
  • ambele sunt structural

10. Care dintre urmatoarele afirmații sunt adevarate? 1. Metodele dintr-o interfață pot avea specificatorii de acces public sau default 2. String și Integer sunt clase imutabile (immutable) 3. Clasele abstracte nu pot fi instanțiate 4. Constructorii sunt folosiți pentru a inițializa un obiect nou creat

  • 1, 2, 3
  • 2, 4
  • 3, 4
  • 2, 3, 4
test/test_2019.txt · Last modified: 2019/02/08 12:14 by Adriana Draghici