# Java [Zk] 22.1.2008

<{ForumPost(poster="Che", timestamp=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.  
  
4.

    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  
  
5. 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](http://forum.matfyz.info/viewtopic.php?f=163&t=3999), ale metody foo() nejsou v tomto případě statické, což je rozdíl :)  
  
6.

    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.  
  
7.

    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...
<{/ForumPost}>

