Administrativ
Laboratoare
Tema
Teste
Resurse utile
Alte resurse
Arhiva Teme
Administrativ
Laboratoare
Tema
Teste
Resurse utile
Alte resurse
Arhiva Teme
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(); } }
“This is a static method”
si de doua ori “This is a private method”
main()
(Core.staticMethod()
)this.privateMethod()
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) { (*) } } }
parametrul metodei: x
Inner
: this.x
Outer
, obtinuta prin 'mostenire
': super.x
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(); } } }
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); } }
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?
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(); } }
“! Stack overflow !”
5
IndexOutOfBoundsException
, care nu va fi prinsa7) 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(); } }
new Main()
new Main().print();
nu este corectaInstance
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()