User Tools

Site Tools


Problem constructing authldap
laboratoare:recapitulare

This is an old revision of the document!


1) Se considera urmatoarea declaratie de clasa. Ce se va intampla la compilarea si executarea ei?

public class Core
{
    private void privateMethod()
    {
        System.out.println("This is a private method");
    }
 
    public static void staticMethod()
    {
        System.out.println("This is a static method");
 
        this.privateMethod();
    }
 
    // Application Entry Point
    public static void main(String[] Params)
    {
        Core Instance = new Core();
        Instance.staticMethod();
        Core.staticMethod();
    }
}
  • A. Se va afisa de 2 ori mesajul “This is a static method” si de doua ori “This is a private method”
  • B. Se va genera o eroare de compilare la ultima linie din main() (Core.staticMethod())
  • C. Se va genera o eroare de compilare la linia this.privateMethod()
  • D. Se va arunca o exceptie la executarea liniei Instance.staticMethod()

2) Se considera urmatoarea situatie. Cate versiuni distincte ale variabilei x sunt accesibile in (*)?

class Outer 
{
    int x;
 
    class Inner extends Outer 
    {
        int x;
 
        void f(int x) 
        {
            (*)
        }
    }
}
  • A. Una singura
  • B. Doua
  • C. Trei
  • D. Patru

parametrul metodei: x

  1. :* variabila membru din Inner: this.x
  2. :* variabila membru din Outer, obtinuta prin 'mostenire': super.x
  3. :* variabila membru din Outer, obtinuta prin 'continere' (clasa exterioara): Outer.this.x
  • /

3) Se considera urmatoarea structura de clase. La rularea metodei printAll(), ce valori se vor afisa si in ce ordine (ignorati faptul ca acestea apar pe linii diferite)?

class Outer 
{
    int x = 10;
 
    class Inner extends Outer 
    {
        int x = 15;
 
        void printFirst(int x) 
        {
            System.out.println(this.x);
            System.out.println(x);
            System.out.println(super.x);
        }
 
        void printSecond()
        {
            System.out.println(this.x);
            System.out.println(x);
            System.out.println(super.x);
        }
 
        void printAll()
        {
            printFirst(20);
            printSecond();
        }
    }
}
  • A. 20, 15, 15, 10, 15, 20
  • B. 10, 15, 15, 20, 20, 10
  • C. 15, 20, 10, 15, 20, 10
  • D. 15, 20, 10, 15, 15, 10

4) In urmatorul exemplu, ce se va afisa (ignorati faptul ca mesajele apar pe linii diferite)?

public class Core
{
    private void someFunction(int x)
    {
        try
        {
            System.out.println("1");
            if (x == 1)
                return;
            x /= x;
        }
        catch (Exception error)
        {
            System.out.println("2");
        }
        finally
        {
            System.out.println("3");
        }
    }
 
    // Application Entry Point
    public static void main(String[] Params)
    {
       Core instance = new Core();
       instance.someFunction(1);
       instance.someFunction(0);
    }
}
  • A. Nici un raspuns din cele de mai jos
  • B. 1, 2, 3, 1, 3
  • C. 1, 1, 3
  • D. 1, 1, 2, 3

5) In fisierul “CarData.java” exista urmatoarele declaratii:

class Car
{
   private String Name = "Some Car";
}
 
public class LuxuryCar extends Car
{
    public LuxuryCar()
    {
        Name = "Luxury Car";
    }
}
 
class Main
{
    // Application Entry Point
    public static void main(String[] Params)
    {
       LuxuryCar instance = new Car();
    }
}

Ce se intampla in momentul in care incercam sa compilam continutul acestui fisier?

  • A. Compilarea decurge fara probleme
  • B. Compilarea esueaza cu 3 erori
  • C. Compilarea esueaza cu 1 eroare
  • D. Compilarea esueaza cu 2 erori

6) Fie urmatoarea secventa de cod. Ce se intampla la executia ei?

import java.util.*;
 
class Main
{
    private void process()
    {
        ArrayList<Integer> myList = new ArrayList<Integer>();
 
        try
        {
            for(int I = 0; I < 5; ++I)
                myList.add(I + 1);
 
            int result = myList.get(5);
            System.out.println(result);
        }
        catch(StackOverflowError error)
        {
            System.out.println("! Stack overflow !");
        }
    }
 
    // Application Entry Point
    public static void main(String[] Params)
    {
       new Main().process();
    }
}
  • A. Se va afisa “! Stack overflow !”
  • B. Se va afisa 5
  • C. Aplicatia se va incheia normal (fara exceptii), fara a afisa nici un mesaj
  • D. Se va arunca o exceptie de tipul IndexOutOfBoundsException, care nu va fi prinsa

7) Ce se intampla la compilarea si executarea urmatoarei aplicatii Java?

class Main
{
    private static Main Instance = new Main();
 
    public static Main getInstance()
    {
        return Instance;
    }
 
    public void print()
    {
        System.out.println(this.getClass());
    }
 
    // Application Entry Point
    public static void main(String[] Params)
    {
       Main.getInstance().print();
       new Main().print();
    }
}
  • A. Nu apar erori sau exceptii, nici la compilare nici la executie
  • B. Apare o eroare la compilare, deoarece nu se poate crea o instanta a clasei Main prin new Main()
  • C. Apare o eroare la compilare, deoarece linia new Main().print(); nu este corecta
  • D. Apare o eroare la compilare, deoarece variabila Instance nu este accesibila la nivelul functiei getInstance()

8) Ce va afisa instructiunea new Child(2)?

class Parent {
    public Parent() {
        System.out.println("Parent 0");
    }
 
    public Parent(int x) {
        System.out.println("Parent 1");
    }
}
 
class Child extends Parent {
    public Child(int x) {
        System.out.println("Child 1");
    }
}

9) Fie urmatoarea secventa:

class C {}
 
class D extends C {}
 
class A {
    void f(C c) {...}
    void f(D d) {...}
}
 
class B extends A {
    void f(C c) {...}
    void f(D d) {...}
}

Care implementare a metodei f va fi utilizata in cadrul invocarii de mai jos:

A a = new B();
C c = new D();
a.f(c);

10) Adaugati un cuvant cheie la urmatorul antet de clasa, astfel incat declaratia sa devina contradictorie:

abstract class C

11) Intrebarea de mai sus, aplicata in cazul metodei:

abstract void f()
laboratoare/recapitulare.1388955990.txt.gz · Last modified: 2014/01/05 23:06 by Adriana Draghici