V poslednom čase som vykonal niekoľko pohovorov a testov s absolventmi a študentmi, ktorí uvádzali, že ovládajú programovací jazyk Java. Počas testov som zistil, že absolventi nemajú prax alebo nepoznajú coding style, naming conventions a application structure. Výsledkom bolo, že sa do hlavného súboru snažili napratať celý test namiesto toho, aby si vytvorili interface a triedu ako samostatné súbory a inštanciu volali z hlavného súboru, teda metódy main(). Ďalšou zlou vizitkou bolo, že namiesto zmyslu plných názvov premenných, kde sa ukazuje určitá úroveň programovania používali premenné ako keby išlo o obfuskáciu, teda premenné a, b pričom nešlo o cykly. Najviac ma pobavilo, keď jeden uchádzač napísal programový kód do hlavnej triedy, no nevedel zavolať vnorenú metódu, takže ani aplikáciu. Z tohto dôvodu som pripravil tento článok, kde budem demonštrovať tri spôsoby ako mohol test napísať, aby fungoval. Demonštrovať budem volania metód v rámci hlavnej triedy.Príklad: Príklad č.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package testcases;
/**
*
* @author Matej Lednár
*/
public class MainApp {
public static void test(){
System.out.println("testcases.MainApp.test()");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args){
test();
}
}
V prvom príklade ak chcem volať metódu v rámci hlavnej triedy, je potrebné aby mala modifikátor static. Príklad: Príklad č.2.
Tento príklad obsahuje triedu v hlavnej triede. Aj v tomto prípade je potrebné použiť modifikátor static, tentoraz však na triedu a nie metódu. Príklad: Príklad č.3.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package testcases;
/**
*
* @author Matej Lednár
*/
class Test {
public Test(){
System.out.println("testcases.Test.test()");
}
}
public class MainApp {
/**
* @param args the command line arguments
*/
public static void main(String[] args){
new Test();
}
}
V poslednom príklade ide o triedu v rámci hlavného súboru. V tomto prípade nesmie mať trieda modifikátor public.
Záver
V podstate sa nečudujem, že absolventi alebo aj študujúci uchádzači majú takéto problémy. Stačí sa pozrieť na internet alebo si kúpiť knihu a všetky príklady sa robia v rámci hlavnej triedy a metódy main(). Výsledkom je potom to, čo som zažil s uchádzačmi. Z tohto dôvodu by sa mali učitelia informatiky a programovania zamerať aj na prácu s vývojovými prostrediami, architektúru a štruktúru aplikácií, naming conventions a coding style. Učitelia by sa mali v OOP zamerať aj na interface, s ktorým mali tiež viacerí uchádzači problém.9.12.2016, Matej LednárKategória: JavaJava,class,main,static,naming conventions,coding styleŽiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.Viac informácií nájdete v sekcii O projekte.