Author: Juraj Petrík

  • 2. Cvicenie (piliere OOP)

    Zadanie

    Naimportujte si nasledujuci zdrojovy kod do IDE:

    V tomto projekte neboli (ocividne) aplikovane zakladne principy objektovo orientovaneho programovania. Zanalyzujte tento projekt a upravte ho aby splnal aspon zakladne standardy a principy OOP.

    Mozete aj doimplementovat niektore chybajuce herne mechaniky, absak primarne sa sustredte na opravu povodnej implementacie.

    Toto su zakladne principy OOP:

    Enkapsulacia (encapsulation) – napr. nie je ziaduce pracovat priamo s datami (mimo triedy)

    Dedenie (inheritance) – hladame ci vieme napr. vytvorit nadriedu z ktorej vieme zdedit (prebrat) jej vlastnosti a metody

    Polymorfizmus (overriding, overloading) – potrebujem mat pri dedeni specificke spravanie v podtriede? potrebujem sa specificky rozhodovat napriklad pri utoku podla toho na koho utocim?

    Abstrakcia (abstraction) – napriklad je potrebne aby bolo mozne zo vsetkych tried vytvarat objekty?

    Dbajte napriklad aj na spravne clenenie tried alebo balikov.

    Poznamky:

    Vasa implementacia by mala splnat aj tieto poziadavky:

    Meno (name) objektov nie je mozne menit. Zabezpecte aby bolo mozne meno nastavit iba pri vytvarani noveho objektu (mimo tela samotnej triedy/podtriedy).

    Pokial najdete logicku chybu v implementacii, tak ju pokojne opravte.

    Bonus:

    Vytvorte simulaciu subojov (nahodny pocet Steve vs nahodny pocet Creeperov (nemusite dodrziavat vsetky herne mechaniky), vlasnosti mozu byt tiez inicializovane nahodne). Implementaciu mozete (pravdepodobne aj potrebujete) upravit pre potreby tejto ulohy.

    Pozor! V tomto tyzdni uz ste za pracu na cviceniach hodnoteni.

  • 1. Prednáška (Úvod k OOP, Java)

    Prednáška

    Nahrávka

    Zdrojový kód

    Ďalšie materiály

  • 1. Cvicenie (prostredie, zaklady jazyka Java)

    Instalacia prostredia

    V CPU je na PC nainstalovane JDK 21, Intellij IDEA Community a Eclipse for Java.

    Co nainstalovat ak chcete pracovat (aj) na svojom PC:

    1. JDK, je viacero distribucii, napriklad Microsoft JDK: https://learn.microsoft.com/en-us/java/openjdk/download
      • V instalatore zaskrknut set or override JAVA_HOME a Modify PATH variable
    2. Intellij IDEA (alternativne mozete pouzivat aj ine IDE, zameriavat sa vsak budeme na Intellij IDEA pocas prednasok/cviceni)

    Skontrolujte korektnu instalaciu v prikazovom riadku (po restarte):

    Vytvorenie projektu v IDE

    Zakladne konstrukcie v jazyku Java

    Vyskusajte si syntax zakladnych konstrukcii v Jave, blizsie sa im budeme venovat na prednaskach:

    Prestudujte si vygenerovany priklad (subor Main, vratane pomocok), experimentujte s nim.

    Prestudujte si: https://www.oracle.com/java/technologies/javase/codeconventions-namingconventions.html

    Uloha 1

    Ako je potrebné spustiť nasledujúci kód aby nenastala chyba? (skopírujte si ho k sebe do IDE) – prečítajte a zamyslite sa nad chybovou hláškou.

    public class Main {
        public static void main(String[] args) {
            int a = Integer.parseInt(args[0]);
            int b = Integer.parseInt(args[1]);
    
            System.out.println("Sum: " + (a + b));
            System.out.println("Difference: " + Math.abs(a - b));
            System.out.println("Product: " + (a * b));
            System.out.println("Quotient: " + (double) a / b);
        }
    }

    Co je v premennej args? Ako sa to tam dostane?

    Preco v poslednom riadku potrebujeme (double)?

    Uloha 2

    Opravte nasledujuci kod:

    public class Main {
        public static void main(String[] args) {
            String sampleString = "string";
            for (x : sampleString.toCharArray()) {
                System.out.print(x);
            }
        }
    }

    Kolko krat sa vykona cyklus? Doprogramujte funkcionalitu na pocitanie poctu iteracii cyklu.

    Uloha 3

    Doimplementujte metodu sumArray, ktora vrati sucet vsetkych prvkov z pola, dlzka pola sa moze menit.

    import java.util.Arrays;
    
    public class Main {
        public static void main(String[] args) {
            int[] numbers = {1, 2, 3, 4, 5, 6};
    
            System.out.println("Numbers: " + numbers); // what is going on?
            System.out.println("Numbers: " + Arrays.toString(numbers));
            System.out.println("Sum: " + sumArray(numbers));
        }
    
        private static int sumArray(int[] arr) {
            
        }
    }

    Uloha 4

    Doimplementujte metodu areAnagrams. https://sk.wikipedia.org/wiki/Anagram

    public class Main {
        public static void main(String[] args) {
            String s1 = "listen";
            String s2 = "silent";
    
            System.out.println("Are '" + s1 + "' and '" + s2 + "' anagrams? " 
                    + areAnagrams(s1, s2));
        }
    
        private static boolean areAnagrams(String s1, String s2) {
        }
    }

    CLI

    Vyskusajte si spustenie svojho programu pomocou prikazoveho riadku:

    Otvorte si prikazovy riadok v projektovom priecinku (pravy klik na src):

    javac [file].java

    java [file].class

WordPress Appliance - Powered by TurnKey Linux