Java [Zk] 22.1.2008

Che at 2008-01-22 18:14:30

Koho by to zajímalo - pár otázek ze dnešní zkoušky.

  1. Jakým způsobem správně naalokovat dvourozměrné pole (2x2) typu int?
    a) int[][] array = new int[2][2];
    b) int array = new int[2][2];
    c) int[] array = new int[2][2];
    d) int[] array = new int[2x2];

  2. Která slova nejsou v Javě klíčová?
    include, then, case, finally, sizeof

  3. Napsat tělo metody multiply, která přijímá 2 parametry (String s, int n) a vrací String, který je n-násobnou kopií s.

try {
  boo();
} finally {
  System.out.println("Konec");
}

Kdy program vypíše řetězec "Konec"?
a) vždy
b) jenom když metoda boo() vyhodí vyjímku
c) jenom když metoda boo() nevyhodí vyjímku
d) nikdy

  1. Co vypíše následující program?

    class A { public void foo() { System.out.println("foo"); } } class B extends A { public void foo() { System.out.println("bar"); } }

    public class OverloadTest { public static void main(String[] args) { A a = new A(); A b = new B(); a.foo(); b.foo(); } }

Pozn.: Je to stejná otázka jako v testu před týdnem, ale metody foo() nejsou v tomto případě statické, což je rozdíl :)

class Book {
  String author;
  String title;
  int yearOfIssue;
}

public class Main {
  static Book[] find(Book[] books, int noOfBooks, String author, int yearOfIssue) {}
}

Napsat tělo metody find tak, aby vracela pole jenom s těmi knížkami, které napsal daný autor v daném roce. Parametr noOfBooks určuje kolik je knížek v poli books. Vrácené pole nesmí obsahovat žádné položky navíc.

public class X {
  public void main(String[] args) {
    X x = new X();
  }

  X() {
    boolean b;
    if (b) {
      System.out.println("True.");
    } else {
      System.out.println("False.");
    }
  }
}

Pro daný kód platí:

  1. Program nepůjde přeložit, překladač zahlásí neinicializovanou proměnnou b v konstruktoru.

  2. Program vypíše "True."

  3. Program vypíše "False."

  4. Program nevypíše nic.

A ještě tři otázky, na které si už ale nevzpomenu...