Groovy v příkladech: objektově orientované programování
Dnešní díl seriálu Groovy v příkladech věnujeme objektově orientovanému programování v Groovy. Ukážeme si, jak na tvorbu tříd a objektů, jaké jsou možnosti objektového programování v Groovy a podobně. A protože nejlépe se učí na příkladech, bude tento díl hlavně o nich.
Seriál Groovy v příkladech
- Groovy v příkladech: úvod do jazyka
- Groovy v příkladech: objektově orientované programování
OOP v Groovy
Groovy, stejně jako jeho mateřská Java, je silně objektově orientovaný jazyk. Na rozdíl od Javy není nutné tvořit hlavní třídu, což ale jazyku na jeho objektovosti rozhodně neubírá. Ukažme si tvorbu třídy v Groovy:
class Dog{
name
bark(){
println "Haf, haf!"
}
}
myDog = new Dog() // vytvoreni nove instance tridy Dog myDog.name = "Mollie" // pojmenujeme naseho psa (promenna objektu name) myDog.bark() // a ted si trochu zastekame
Na výstup dostaneme pochopitelně „Haf, haf!“ A teď se podíváme ještě na jednu, již o něco složitější ukázku (přejato z JavaBeat.net):
// vytvorime novou tridu
class Product{
// promenne objektu
private String name
private def price
def vendor
public Product(){
}
Product(name, price, String vendor){
this.name = name // pristup k promenne objektu z vnitrku tridy
this.price = price
this.vendor = vendor
}
public String getName(){
return name
}
def setName(name){
this.name = name
}
public String getPrice(){
return price
}
def setPrice(price = 100.00){ // predani defaultni hodnoty promenne price
this.price = price
}
def toString(){
return "Name = $name, Price = $price, Vendor = $vendor";
}
static main(arguments){
def p1 = new Product("Mobile", "10000", "Nokia")
println(p1.toString())
def p2 = new Product(name: 'Laptop', price: "540000", vendor: "IBM")
println(p2.toString())
def p3 = new Product()
p3['name'] = "Television"
p3.'price' = "45454"
p3['vendor'] = "Samsung"
println(p3.toString())
def p4 = new Product(name: "DVD Player", vendor: "TCL")
p4.setPrice();
println(p4.toString())
}
}
Výstup:
Name = Mobile, Price = 10000, Vendor = Nokia Name = Laptop, Price = 540000, Vendor = IBM Name = Television, Price = 45454, Vendor = Samsung Name = DVD Player, Price = 100.00, Vendor = TCL
Nic moc překvapivého, jak vidíte. Definice třídy v Groovy je na půl cesty mezi kódem v Javě a kódem v Pythonu či Ruby. Proměnné objektu se z vnitřku třídy volají this.metoda, třída se tvoří klíčovým slovem class, metoda klíčovým slovem def, proměnná či metoda může být public nebo private.
Groovy podporuje tzv. defaultní parametry, což jsou defaultní hodnoty, které se přiřazují při definici metody jednotlivým proměnným a kterých proměnná nabude v případě, že její hodnota nebyla při volání metody specifikována. Defaultní hodnoty se předávají takto:
def setPrice(price = 100.00){
this.price = price
}
Nyní, zavoláme-li metodu setPrice bez parametrů, proměnná price nabude defaultní hodnoty 100.00. Prosté a užitečné.
Příště
Tak, a to je pro dnešek vše. V příštím pokračování našeho miniseriálu se budeme věnovat zajímavým projektům v Groovy. Například webovému frameworku Grails a sestavovací utilitce Gant. Obě jsou inspirovány svými protějšky v Ruby – Ruby on Rails a Rake.
Odkazy
Související odkazy
Školení: Django framework: Struktura a základy vývoje (nejen) webových aplikací
Django je vyspělý webový framework napsaný v jazyce Python, který podporuje extrémně rychlý vývoj společně s dodržováním principů dobrého návrhu. Snaží se co nejvíce automatizovat a drží se principu DRY (z anglického Don't Repeat Yourself — neopakuj se).
- Instalace potřebného softwaru
- Programování v Pythonu: příkazy, funkce, datové typy, moduly, objekty, výjimky
- Struktura aplikace v Djangu
- Typické záležitosti webových aplikací: Napojení na databázi, zpracování vstupu od uživatele, přihlášení či generování dynamického obsahu.
- Implementace principu MVC: modely, pohledy (views) a šablony
- Seznámení s užitečnými komponenty frameworku Django
- Šikovné praktiky
Podrobnější informace a přihláška
Seriál Groovy v příkladech
- Groovy v příkladech: úvod do jazyka
- Groovy v příkladech: objektově orientované programování
Přehled názorů
Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.


