2009-12-03

SCJP-6 04. Throwable, Collection, Comparator

Egzaminui labai svarbu atsiminti, kad Throwable yra klasė, tuo tarpu Collection ir Comparator -- interfeisai. Pagal kai kurias rekomendacijas (pvz. žymiojoje Sierra ir Bates knygoje "SCJP for Java 6 Exam"), klases siūloma žymėti daiktavardžiais, o interfeisus -- būdvardžiais. Kai kuriais atvejais Java API taip ir daroma: klasės -- Object, String, Date, Calendar (nors tai ir abstrakti, tačiau -- klasė). Interfeisai: Comparable, Serializable, Runnable. Tačiau Throwable, Collection ir Comparator (bei kitais -- Set, List, Queue, Map ir pan.) atvejais nesusipainiokit. Atminkit, kad interfeisai neturi konstruktoriaus (todėl objekto nepavyks sukurti naudojant new, išplėsti klase (tik interfeisu) ar kviesti statinius metodus. Lygiai taip pat klasės negali būti išplėstos interfeisu ar implementuotos. Žemiau -- blogų pavyzdžių rinkinukas
//BLOGI pavyzdžiai
List list = new List(); // nėra konstruktoriaus, interfeisas
class MyClass extends Collection {...} // bandoma išplėsti interfeisą klase
Collection.sort(...); // interfeisas neturi statinių metodų, supainiota su klase Collections

interface MyThrowable extends Throwable {} // bandoma interfeisu išplėsti klasę
class MyThrowable implements Throwable {} // bandoma implementuoti klasę

Komentarų nėra: