Vyskúšaj všetky online kurzy na 30 dní teraz v akcii -50%
Akcia
Späť na blog
Vzdelávanie

O zlatom reze a jeho aplikáciách v dizajne

Ľudovít Nastišin
11.04.2021
5 minút čítania
O zlatom reze a jeho aplikáciách v dizajne
V dizajne ako takom je veľmi dôležité, aby bol výsledok práce jasný a každý mu chápal. Či už je to vo forme zalomenia textu, orezania fotografie alebo navrhnutia loga. Za týmto účelom sa okrem iných pomôcok často využíva aj aplikácia zlatého rezu, o ktorom si teraz niečo povieme. 
Z angl. „Golden ratio“  hovoríme o konkrétnom matematickom pomere, ktorý sa veľmi často vyskytuje aj v prírode a dizajnové odvetvie sa nim inšpiruje. Zlatý rez nám pomáha dosiahnuť čo najprirodzenejšie pôsobiace proporcie, tvary či štruktúry.
Zlatý rez vznikol už v starovekom Grécku
Ide o veľmi špeciálne číslo – 1,618. Vychádza zo známej Fibonacciho postupnosti a jeho aplikáciu môžeme nájsť aj v prírode, napríklad v tvare morskej mušle či vo formácii oblakov pri hurikánoch. Táto postupnosť  je tvorená vždy sumou dvoch predchádzajúcich čísel (0-1-1-2-3-5-8-13-21-...). A práve z tejto sekvencie odvodili už v starovekom Grécku zlatý rez (golden ratio), aby vedeli lepšie vyjadriť rozdiely medzi číslami sekvencie.

Ako používať zlatý rez v dizajne 

 Aplikácie zlatého rezu do dizajnérskej profesie vôbec nie je tak náročná, ako by sa mohlo na prvý pohľad zdať. Jeho využitím môžeme vytvárať napríklad proporcionálne layouty na web. Ak chceme navrhnúť web, ktorý má vedľa priestoru pre hlavný obsah aj sidebar, tak práve s využitím zlatého rezu vieme stanoviť ich presnú šírku
Ak by sa jednalo povedzme o priestor so šírkou 960px, tak priestor pre hlavný obsah by mal mať šírku 593px (960px / 1,618) a sidebar šírku 367px (593px / 1,618). Samozrejme, že v praxi do toho vstupuje viacero ďalších faktorov (napr. padding), no logiku tohto pomeru to deklaruje vynikajúco.
A keďže toto číslo vychádza zo sekvencie nekonečného množstva čísel, tak jeho opakovaným aplikovaním získame rôzne veľkosti (dĺžky, šírky,...), s ktorými môžeme v dizajne pracovať a vyskladať z nich funkčné a intuitívne UI. 
 Ako sme si už hovorili, zlatý rez sa dá aplikovať v podstate na všetky oblasti dizajnu či kreatívy. Ukážeme si k tomu niekoľko príkladov.

Orezávanie obrázkov 

 Ak ide iba o orez prázdneho priestoru na kraji fotografie, vec je jednoznačná. Ale ak treba orezať aj samotný obsah fotografie či obrázku, situácia sa mení. Výsledok musí ostať vyvážený a tie najdôležitejšie veci na obrázku by mali mať svoje miesto. Práve s tým nám vie pomôcť zlatý rez.
(Zdroj: industrydev.com)

Typografia a hierarchia 

 Vieme si tiež pomôcť pri výbere správnej kombinácie veľkosti použitých fontov. Takto bude mať názov, podnázov a samotný text tú správnu veľkosť a hierarchia medzi nimi bude okamžite jasná.
(Zdroj: Invisionapp)

UI Webdizajn 

 Rozloženie jednotlivých elementov a plôch na webe rozhoduje o tom, ako intuitívne sa bude návštevník webu cítiť. A rovnako aj, či sa mu to bude páčiť. Ako sme už skôr písali v článku, napríklad šírka jednotlivých stĺpcov je vďaka zlatému rezu jasne stanovená.
(Zdroj: Apiumhub)

Logo

A posledným príkladom je využívanie zlatého rezu pri tvorbe loga. Tu to možno na prvý pohľad nie je až tak očividné. No verte, že zlatý rez sa tu aplikuje veľmi často a aj tie najznámejšie logá boli vytvorené práve s jeho pomocou.
(Zdroj: Twitter, NatGeo)
Niekedy ho v logu nájdete jednoducho (National Geographic logo), inokedy je to trošku skryté (Twitter logo). Práve v tom druhom prípade bolo logo vytvárané za pomoci série kružníc s jasne danými veľkosťami. Tie pomáhali vytvárať všetky krivky a záhyby loga, až kým z neho nevzniklo ikonické logo, ktoré pôsobí prirodzene a pekne. A nie je to náhoda.

Zlatý rez je nie je technika, je to skôr myšlienkový proces. Vedieť ho aplikovať efektívne chce svoj čas. Určite sa však oplatí pohrať sa s ním a skúšať podľa neho vytvárať nejaké layouty či orezávať dôležité fotografie. Šikovnú pomôcku v podobe špirály zlatého rezu nájdeš tu.
Ľudovít Nastišin
Som digitálny kreatívec (problem solver), ktorého špecializácia je "kreatívny kitbash". Táto profesia neexistovala, dokým som si ju nevymyslel, pretože práve to ma vystihuje najviac. Ide o schopnsoť  kombinovať digitálne skilly (3D, 2D, animácia, VFX, generative AI, ilustrácie,...) s cieľom vytvoriť čo je treba a to bez ohľadu na zadanie. 

Klienti, s ktorými som pracoval:
  • Deutsche Telekom IT Solutions Slovakia,
  • Východoslovenská distribučná, a.s.,
  • Nefkus Creative House,
  • EMEFKA & Startitup Group,
  • Promiseo,
  • Letisko Košice,
  • Boataround,
  • DMS Records 
  • ...a ďalší


Mohlo by ťa zaujímať

Kotlin Raw String
Vzdelávanie
19.02.2021
Skillmea

Kotlin Raw String

String je základný dátový typ v programovacích jazykoch. Slúži na uchovanie textu. Ak chceme napísať String tak text vložíme medzi dvojité úvodzovky.  val cesta = "cesta";Vo väčšine prípadov je to dostačujúce. Čo ak do textu chceme nastaviť cestu na súbor ako text. C:\work\tools\__test Musíme ho vložiť do premennej typu String a všetky lomítka zdvojiť - escapnúť.  val cesta = "C:\\work\\tools\\__test";Kotlin má aj pomôcku a tou je Raw String. Na napísanie textu použijem trikrát dvojité úvodzovky na začiatku aj na konci. val cestaRaw = """C:\work\tools\__test"""Raw String nám umožňuje zapísať String na viac riadkov bez nutnosti spájania pomocou +.  Mám text, ktorý chcem napísať na viac riadkov. Čo musím spraviť ak to chcem v jednom Stringu? Všetky časti spojím pomocou + a pridám špeciálnu značku pre nový riadok \n. val text = "1 639,33\n" + "6 540,03\n" + "8179,36\n" + "+2500,04"Pri Raw Stringu len stlačím enter pre nový riadok a pokračujem v písaní. val textRaw = """1 639,33 6 540,03 8179,36 +2500,04"""Tento spôsob ale nie je pekne čitateľný – všetok text mám zasadený na ľavú stranu, lebo nechceme aby sme tam dali napr. taublátor – v pôvodnom textne nebol.  Čo môžeme spraviť je pridať nejaké špeciálnu značku na začiatok riadku, ktorý chcem odsadiť a potom poviem, že všetko na ľavo od značky spolu so značkou považujem len za odsadenie textu. Pridajme značku (hocijakú): val textRaw = """1 639,33 #6 540,03 #8179,36 #+2500,04"""Teraz povieme, že # je špeciálna značka pre odsadenie. val textRaw = """1 639,33 #6 540,03 #8179,36 #+2500,04""".trimMargin("#") A môžeme odsadiť pre lepšiu čitateľnosť: val textRaw = """1 639,33 #6 540,03 #8179,36 #+2500,04""".trimMargin("#")Alebo použijeme default znak oddeľovača, čo je pipe |. val textRaw = """1 639,33 |6 540,03 |8179,36 |+2500,04""".trimMargin()Teraz sa tieto dva Stringy budú rovnať. println("${text == textRaw}") //truePoužitie v reálnej aplikácii Určite by si rád videl príklad z reálnej aplikácie. Jedným z takýchto príkladov by bolo použitie pri písaní Android aplikácie. Presnejšie napríklad pri písaní príkazov pre dopyt na databázu v Room frameworku, ktorý sa používa na zjednodušený prístup k databázam. V Room píšeme takzvané Dao triedy na prístup k databáze. Vezmime si jeden príklad kde chcem napsíať SQL príkaz na vybratie filmov z databázy. @Query("SELECT id, movie_name, genres, directors year FROM MOVIES") suspend fun getAllMovies(): List<MovieShort>Príkaz by si rád napísal na viacero riadkov aby bol lepšie čitateľný. @Query("SELECT id, movie_name, genres, directors year " + "FROM MOVIES") suspend fun getAllMoviesInShortForm(): List<MovieShort>Alebo použiješ Raw String. @Query(""" SELECT id, movie_name, genres, directors year FROM MOVIES """)Určite si vieš predstaviť ako sa ti zlepší čitateľnosť, ak budeš mať zložitejšie select príkazy v kombinácii napríklad s join.
Ako na vlastný Virtuálny privátny server - časť 1.
Vzdelávanie
21.01.2021
Lubo Herko Edited

Ako na vlastný Virtuálny privátny server - časť 1.

Čo je VPS serverVPS (Virtual Private Server) je virtuálny server, ktorý beží na fyzickom serveri a poskytuje používateľovi vlastné systémové prostredie. Na rozdiel od zdieľaného hostingu má VPS vlastné zdroje – CPU, RAM a diskový priestor. Hlavné výhody VPS servera: • plná kontrola nad serverom • možnosť inštalovať vlastné aplikácie • vyšší výkon ako zdieľaný hosting • možnosť škálovania výkonu VPS sa často používa na: • hosting webových aplikácií • backend služby • databázové servery • testovacie prostredia • CI/CD pipeline Ako na vlastný Virtuálny privátny server (VPS)V tomto seriáli si ukážeme, ako vytvoriť a nastaviť vlastný Virtuálny privátny server (VPS). Prejdeme celý proces - od výberu servera až po nasadenie aplikácie do produkcie. Konkrétne sa pozrieme na: • čo je VPS a kedy sa oplatí ho použiť • ako vybrať správne parametre servera • kde kúpiť VPS server • ako nastaviť server a zabezpečiť ho • ako nasadiť aplikáciu z GitHub repozitára • ako pripojiť doménu a SSL certifikát Na konci seriálu budeš mať vlastný server, na ktorom bude bežať tvoja aplikácia. Je to veľa práce, pome na to.[Image] Načo mi je vlastný server?Hneď na začiatku si to vyjasnime: VPS je pre väčšinu projektov zbytočný. Pri dnešných možnostiach, ako svoju aplikáciu vieme nasadiť do produkcie a sprístupniť ju používateľom na pár klikov je často zbytočné riešiť komplikované nastavovanie vlastného servera. Hlavne údržba a riešenie prípadných problémov nám môže pripomenúť, ako zle sme sa rozhodli. Napriek tomu VPS má svoje miesto a niekedy sa naozaj môže hodiť, napríklad: • ak máš linux v malíčku, alebo svoj VPS už máš (si skúsený/á), • ak výkon zdieľaného hostingu viditeľne nestačí a už nevieš svoju aplikáciu ďalej optimalizovať, • ak nepostačujú dostupné technológie zdieľaného hostingu (potrebuješ doinštalovať vlastné knižnice, tooly), • ak má aplikácia extrémne nároky na výkon procesora, veľkosť pamäte, alebo potrebuješ ukladať gigabajty/terabajty dát, • ak sú dáta, s ktorými pracuješ príliž senzitívne na to, aby boli uložené na jednom mieste spolu s dátami iných používateľov zdieľaného hostingu. Asi by sme našli aj dalšie prípady, špecifiká, kedy sa hodí VPS, tieto nám však nateraz postačia. Ak teda spadáš do niektorého z kritérií, čítaj ďalej. Aký výkon servera potrebujem?Brzdi. Predtým, ako pristúpime ku kúpe servera by sme mali vedieť, aké sú naše požiadavky. Aspoň približne. Potrebujeme veľa jadier procesora? Alebo si vystačíme s jedným, prípadne dvoma jadrami? Potrebujeme veľa operačnej pamäte, alebo terabajty dát na disku? To sú ťažké otázky, ale poradím ti: • Ak aplikácia neexistuje a chceš VPS len vyskúšať, zvoľ najlacnejší server aký je v ponuke. Či máš 1 procesor, alebo 32 procesorov - terminál reaguje vždy rovnako rýchlo. • Ak je aplikácia nová a nepoznáš jej nároky, začni radšej s menej výkonným a lacnejším serverom. Napríklad CPU s jedným, alebo dvoma jadrami a 2G RAM. Väčšina providerov disponuje jednoduchým škálovacím nástrojom. Ak sa zvýšia nároky, pohneš v administračnom rozhraní nejakým sliderom a šup, máš o dve jadrá viac, prípadne dvojnásobok RAM - do pár sekúnd. • Ak si narazil na limity zdieľaného hostingu, pravdepodobne poznáš dôvod, prečo chceš vyskúšať VPS. Najlepšie ak si komunikoval s podporou svojho providera a potvrdili, že si narazil na limit ich CPU, alebo RAM. Kde kúpiť server?Takže, ak vieme aspoň približne čo chceme, urobme prieskum. Osobne mám vyskúšaných týchto predajcov VPS: • Linode, DigitalOcean, Hetzner, WebSupport Ubuntu Server a terminál bude u každého predajcu rovnaký. Riadiť sa teda môžeme podľa nasledovných kritérií: 1. cena 2. ešte raz cena 3. možnosti administračného rozhrania a prípadného navyšovania výkonu do budúcnosti 4. lokalita dátového centra (čo najbližšie k používateľom) Moja skúsenosťV poslednej dobe to u mňa osobne vyhráva Hetzner (hetzner.de). Frajeri majú vynikajúce ceny (vlastný server v čase písania tohoto textu vieš získať už za 3E/mesiac) a navyšovanie počtu CPU a RAM je riešené jednoduchým sliderom v administračnom rozhraní. Super vec 🎉. Dátové centrum môžeš zvoliť relatívne blízko - Falkenstein, Nemecko. TIP: V ľavom hornom rohu zmeníš jazyk webu z nemeckého na anglický. 😎 Vytvorenie konta HetznerAko sa už konečne teda dostaneme k vlastnému serveru? Takto: 1. Vytvor si konto na hetzner.de (klik) 2. Klikni na linku, ktorú ti Hetzner poslal na email zadaný pri registrácii 3. V sérii formulárov vyplň svoje iniciály (posledný formulár vyžaduje údaje o platbe, žiadna platba vopred však nie je potrebná) 4. Po vyplnení a odoslaní formulárov sa implicitne zobrazí formulár - nastavenia tvojich iniciál. Vpravo hore klikaj na štvorčeky a vyber z ponuky možnosť "Cloud": Ak máš po absolvovaní predchádzajúcich krokov pred sebou takúto obrazovku:[Image] Konzola cloudu Hetzner.de. je všetko v poriadku. Môj server!Už sme blízko. V zozname projektov (predchádzajúci obrázok) klikni na "Default" (tento názov vieš zmeniť cez ikonu troch bodiek v pravom hornom rohu karty produktu) a následne "Add server".[Image] Vytvorenie nového VPS. Parametre serveraTeraz zvolíme parametre servera. V tomto prípade zvolíme najlacnejší variant, ale niektoré možnosti popíšeme bližšie. Parametre servera teda nastavíme nasledovne: 1. Location (umiestnenie dátového centra): Falkenstein, pretože je najbližšie k Slovensku. 2. Image (operačný systém): Ubuntu 20.04, pretože s ním viem pracovať a tiež existuje obrovská komunita používateľov Ubuntu servera, čo uľahčí vyhľadanie návodov a riešení prípadných problémov. So serverom Ubuntu bude ďalej pokračovať aj tento tutoriál. 3. Type (typ servera): Štandardný, pretože nám nevadí, že spolu s našim VPS budú na fyzickom serveri bežať aj iné virutálne servery. Dedikovaný typ servera je vhodný len vtedy, ak potrebujeme naozaj veľký výpočtový výkon pre naše použitie. Z ďalších možností typu servera vyberme hneď prvý s označením CX11 a teda 1x VCPU, 2GB RAM, 20GB SSD v cene €2.99 za mesiac. 4. Volume (externý disk): Nevytvárame externý disk.  • TIP: Ak vytvoríme VPS s veľkosťou SSD 20GB a potrebujeme viac dát, nemusíme hneď meniť veľkosť SSD na serveri, ale môžeme pripojiť k serveru externý disk. Má to jednu veľkú výhodu a jednu menšiu. Veľkou výhodou je, že v prípade zvyšovania výkonu (napr. z 1CPU a 2GB RAM na 4CPU 8GB RAM) môžeme zvoliť možnosť, že nechceme navyšovať aj veľkosť SSD - teda SSD ostane na hodnote 20GB. Takéto rozhodnute nám v budúcnosti umožní aj krok späť a teda zníženie počtu VCPU a RAM. Takto môžeme ušetriť nemálo finančných prostriedkov, ak potrebujeme zvýšiť výkon VPS len dočasne, nie natrvalo (napr. ak je aplikácia preťažená len v období Vianoc). 5. Network (sieť): Nevytvárame sieť, pretože nevytvárame skupinu serverov, ktoré potrebujeme mať na jednej sieti (napr. ak by sme potrebovali zvlášť VPS pre webserver a databázový server). 6. Additional features (ďalšie možnosti): V prípade možnosti User data nešpekulujeme (zatiaľ). To sa nám môže hodiť vtedy, ak chceme niektoré činnosti automatizovať, napríklad automaticky pridať používateľov do systému, spustiť rôzne skripty po inštalácii a podobne. Backups sú pravidelné zálohy, čo je nutnosť na produkčnom serveri, kde beží ostrá aplikácia. Táto služba je však spoplatnená - 20% z ceny nášho servera. Ak teda vytváraš produkčný server, nafurt, tak odporúčam aj so zálohami. Ak len testuješ, tak je to na tebe 😉 . 7. SSH Key (SSH kľúč): Ak máš skúsenosti s *nix systémami, možno máš vytvorený svoj id_rsa.pub kľúč. Ak áno, tu ho môžeš použiť a tak sa autentifikovať pri pripájaní k serveru. V opačnom prípade (a to je náš prípad) ti bude zaslané heslo k root použivateľovi na tvoj email. Tu teda nešpekulujeme a zatiaľ nezaškrtneme túto možnosť.  • TIP: Povoliť vzdialený prístup pre root používateľa nie je bezpečné a používa sa len pre prvotné nastavenie servera (prvé prihlásenie do nového VPS). Jedným z prvých krokov po prihlásení sa do nového VPS by malo byť vytvorenie vlastného používateľa, ktorý sa bude prihlasovať pomocou kľúča (nie hesla) a zakázanie vzdialeného prístupu pre root používateľa. To bude aj náš postup. 8. Name (Názov): Toto je názov servera, ktorý je zobrazený v administračnom paneli hetzner, ale aj v konzole po pripojení k serveru cez SSH protokol.  • TIP: Spomeň si na nejaké názvy svetov, postáv z tvojich obľúbených počítačových hier, komixov alebo filmov 😎 . Veľa čítania kôli pár klikom. Nastavenie servera teda môže vyzerať aj takto:[Image] Nastavenie parametrov VPS. Prvé SSH spojeniePo potvrdení nastavení chvíľu počkáme na spustenie novej inštancie nášho VPS. Zároveň nám Hetzner doručí email s informáciami o IP adrese, na ktorú sa budeme pripájať a heslom pre root používateľa. Tak skontroluj email a poď sa prihlásiť na server cez SSH. Aký program použiť na prihlásenie cez SSH? Pre MacOS je to Terminal, alebo iTerm. V prípade linuxu (akéhokoľvek) je to veľmi podobné MacOS - čiže opäť Terminal. Používatelia Windows môžu použiť na SSH pripojenie program Putty, prípadne nainštalovať WSL doplnok a použiť WSL terminal. Napíš do komentára ak sa stretneš s nejakým problémom, poriešime. Z emailu som sa dozvedel, ze IP môjho servera je 78.47.244.57 a heslo k používateľovi root je ss3PgfWnHwxUhUaKEEr9 (ani neskúšaj, server v dobe čítania tohto textu už nebude existovať).[Image] Email s autorizáciou do nášho VPS. TerminalPríkaz ssh, ktorý použijeme v MacOS, Linux alebo WSL termináli má nasledovný syntax: ssh pouzivatel@ip_servera Teda v našom prípade: ssh root@78.47.244.57 Terminál si vypýta heslo, môžeme ho len skopírovať a prilepiť. Pri zadávaní hesla do terminálu sa nezobrazujú žiadne hviezdičky ani odozva. Preto len potvrdíme príkaz klávesou Enter. Ak sa na server pripájame prvýkrát, SSH sa opýta, či chceme server uložiť do zoznamu SSH serverov. Napíšeme yes a spojenie sa v prípade správneho hesla úspešne nadviaže:[Image] Prvé pripojenie k serveru cez SSH. Pri prvom prihlásení je nutné zmeniť heslo používateľa root. Zadáme staré heslo a vytvoríme nové. Hotovo. Náš nový VPS server Ubuntu 20.10 je vytvorený. Čo ďalej?V ďalšej časti blogu budeme pokračovať s nastavením nášho servera: 1. vytvoríme si na lokálnom počítači SSH kľúč 2. vytvoríme na serveri vlastného používateľa a nastavíme prihlasovanie cez SSH kľúč 3. zabezpečíme server pomocou firewallu, fail2ban a iných nástrojov 4. nainštalujeme a spustíme webový server (nginx) 5. nainštalujeme a spustíme databázový server (postgresql, ak budeš potrebovať tak aj MySQL) 6. nainštalujeme závislosti (git, nodejs, ...) V tretej časti budeme riešiť deploy našej aplikácie na VPS: 1. kúpime doménu a nasmerujeme ju na server 2. naklonujeme našu aplikáciu na server, spustíme ju pod doménou a vytvoríme k nej službu (systemd service aby sa automaticky spustila pri prípadnom reštarte servera) 3. pomocou certbot nastavíme doméne SSL certifikát a sprístupníme aplikáciu pod HTTPS 4. pomocou GithubActions nastavime continous integration tak, aby sa po push do main branche spustili automatizovane testy a v pripade bezchybnosti sa aplikacia rovno nasadi do produkcie Veľa roboty máme. Ale veľa sa aj naučíme. Štvrtá časť nie je. Najčastejšie otázky FAQ: Virtuálny privátny server (VPS)Čo je VPS server?VPS (Virtual Private Server) je virtuálny server, ktorý poskytuje vlastné systémové prostredie na fyzickom serveri. Používateľ má prístup k operačnému systému a môže server plne spravovať. Aký je rozdiel medzi VPS a zdieľaným hostingom?Pri zdieľanom hostingu beží viac webov na jednom serveri a zdroje sa zdieľajú. VPS má vyhradené systémové zdroje, čo poskytuje vyšší výkon a väčšiu kontrolu. Koľko stojí VPS server?Najlacnejšie VPS servery začínajú približne od 3 € mesačne. Cena závisí od výkonu servera a poskytovateľa. Na čo sa používa VPS server?VPS server sa používa najmä na hosting webových aplikácií, databáz, backend služieb alebo testovacích prostredí. Je VPS vhodný pre začiatočníkov?VPS môže byť náročnejší na správu než klasický hosting. Pre vývojárov a technicky zdatnejších používateľov je však veľmi užitočný.
Abstrakcia a zoraďovanie v kolekciách v Jave
Vzdelávanie
08.12.2020
Skillmea

Abstrakcia a zoraďovanie v kolekciách v Jave

Poďme sa porozprávať o abstraktných triedach v jave (abstract class in java). Abstrakcia slúži na schovanie zložitosti od používateľa a zobrazuje len relevantné informácie. Abstraktné triedy a metódy  V našom príklade vieme, že všetky zvieratá vydávajú zvuk. Je to niečo abstraktné – niečo, čo si vieme predstaviť a v kóde to zapíšeme nasledovne. Upravme metódu v triede Animal. public abstract void makeNoise(); Dáva to zmysel, lebo Animal nepredstavuje určité špecifické zviera a teda nevieme, aký zvuk vydá, ale vieme, že chceme aby všetko, čo bude dediť od Animal, vydávalo zvuk. Pomocou public abstract som povedal, že táto metóda nemusí mať vnútro – nemusí mať kód (implementáciu). Ak mám abstraktnú metódu, tak aj celá trieda musí byť abstract. public abstract class Animal{ public String name = "animal"; public abstract void makeNoise(); }Ak je trieda abstract, tak z nej nemôžem vyrobiť objekt. Načo by som aj robil objekt Animal, však je to len abstrakcia. Toto nebude fungovať: Animal animal = new Animal(); Ak je Animal abstract a obsahuje abstract metódu, tak som povedal, že potomk musí napísať implementáciu abstract metódy alebo bude potom tiež abstract.  Nám vyhovuje, aby Mamal bol tiež abstract. Tým pádom nemusíme vyrobiť implemntáciu. Z triedy Mamal zmažeme makeNoise a označíme ju za abstract. public abstract class Mamal extends Animal { public String name = "mamal"; }Teraz triedy, ktoré dedia od Mamal musia implementovať metódu makeNoise. Cat a Dog už danú metódu implementujú, teda nemusíme nič robiť. Ale Fox túto metódu nemá a preto ju musíme implementovať. IntelliJ IDEA nám v tomto pomôže skratkou. Stlačíme Alt + Insert a vyberieme Implement Methods. public class Fox extends Mamal { @Override public void makeNoise() { System.out.println("Ring-ding-ding-ding-dingeringeding!"); } } Zoraďovanie v kolekciáchPre zoraďovanie použijeme už existujúci algoritmus v triede Collections.sort(l). Písmeno l v tomto prípade bude List. Ak by tento List obsahoval sadu Stringov, boli by zoradené abecende, ak by obsahoval Dátum tak budú zoradene chronologicky. Ako je to možné? Je to preto, lebo tieto triedy implementujú rozhranie Comparable. Ak by si sa snažil takto zoradiť také triedy, ktoré neimplementujú toto rozhranie, tak program vyhodí výnimku.  Existuje ale možnosť, že v tvojej triede implementuješ toto rozhranie. Potom toto triedenie je teraz považované za prirodzené. Príklad: Máme Osobu, ktorá implementuje Comparable. Musíme implementovať metódu compareTo. public class Osoba implements Comparable<Osoba>{ private String meno; private String priezvisko; private int vek; public Osoba(String meno, String priezvisko, int vek) { this.meno = meno; this.priezvisko = priezvisko; this.vek = vek; } //get, set metódy vynechané pre čitatelnosť @Override public String toString() { return "Osoba{" + "meno='" + meno + '\'' + ", priezvisko='" + priezvisko + '\'' + ", vek=" + vek + '}'; } @Override public int compareTo(Osoba o) { int porovnaniePriezvisk = o.getPriezvisko().compareTo(this.getPriezvisko()); return porovnaniePriezvisk !=0 ? porovnaniePriezvisk : o.getMeno().compareTo(this.getMeno()); } } Čo ak chceš použiť úplne iné ako prirodzené triedenie, chceš to triediť napríklad podľa veku. Alebo chceš triediť objekty, ktoré neimplementujú Comparable rozhranie? Tak si ho vyrobíš. Na to použiješ rozhranie Comparator a potom ho požiješ Collections.sort(e, VEK_TRIEDENIE);. public class Sort { private static final Comparator<Osoba> VEK_TRIEDENIE = new Comparator<Osoba>() { @Override public int compare(Osoba o1, Osoba o2) { return Integer.compare(o1.getVek(), o2.getVek()); } };Vyskúšame si: public static void main(String[] args) { Osoba[] osobyArray = { new Osoba("Jaro", "Beno", 20), new Osoba("Peter", "Beno", 25), new Osoba("Karol", "Slepec", 18), new Osoba("Tomas", "Vlak", 22) }; List<Osoba> osoby = Arrays.asList(osobyArray); System.out.println(osoby); Collections.sort(osoby); System.out.println(osoby); Collections.sort(osoby, VEK_TRIEDENIE); System.out.println(osoby); } }V ďalších blogoch sa pozrieme na zopár zaujímavostí z Javy 13 a takisto sa budeme venovať aj Kotlinu. Ostaň nám verný a uč sa Javu 😊

Nezmeškaj info o nových kurzoch a špeciálnych ponukách