Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Random;
- public class Dice {
- // int ma inicializacni hodnotu "0"
- private int actualValue;
- private int numOfSides;
- // static znaci konstanty (jejich hodnota se musi definovat predem, ale je
- // dobre je pouzivat kvuli praci s pameti a lepsi modifikovatelnosti kodu-
- // aby se potom dana promenna nemusela menit na milionech mistech)
- // fungovalo by to, i kdyz se smaze klic. slovo "static"
- private static int MIN = 3;
- private static int MAX = 20;
- /**
- * Konstruktor
- *
- * @param sidesCount
- * pocet stran, pokud je mensi nez 3, nastavi se tri, pokud vetsi
- * nez 20, nastavi se hodnota 20, jinak se nastavi predana
- * hodnota
- */
- public Dice(int sidesCount) {
- // teoreticky by tu nemuselo byt, ale pro jistotu (je to lepsi- napr.
- // String ma init hodnotu "null")
- actualValue = 0;
- if (sidesCount < this.MIN) {
- // pokud je zadane cislo mensi nez 3 a zapis hodnotu 3 a vypis do
- // konzole
- numOfSides = this.MIN;
- System.out.println("Bylo zadano cislo mensi nez " + this.MIN
- + ", promenna nastavena na hodnotu " + this.MIN);
- } else if (sidesCount > this.MAX) {
- // pokud je zadano vice nez 20, nastav 20 a vypis do konzole
- numOfSides = MAX;
- System.out.println("Bylo zadano cislo vetsi nez " + this.MAX
- + ", promenna nastavena na hodnotu " + this.MAX);
- } else {
- // v kazdem jinem pripade (tj. hodnoty mezi 3 a 20) nastav do
- // promenne
- System.out.println("Zadane cislo je ok, nastaveno");
- numOfSides = sidesCount;
- }
- }
- /**
- * Public metoda- tudiz je mozne ji zavolat v jinych casti programu (private
- * pouze v dane tride, protected v danem package)
- *
- * @return int v mezich od nuly do hodnoty numOfSides
- */
- public int roll() {
- this.actualValue = new Random().nextInt(this.numOfSides);
- // ukazatel "this" dava najevo, ze se jedna o promennou tridy, neni
- // nutny, ale je sikovny, pokud se parametr metody jmenuje stejne jako
- // nejaka promenna tridy- aby se rozeznaly promenne
- return this.actualValue;
- }
- // getter nedela nic jineho, nez ze vrati aktualni hodnotu promenne (jinak
- // je to metoda jako kazda jina)- pokud by byly promenne public, jsou
- // zbytecne (protoze by promenne byly videtelne i bez getteru a hodnota by
- // sla cist a zapisovat naprimo pres tecku)
- public int getActualValue() {
- return actualValue;
- }
- // setter pouze nastavuje hodnotu internich promennych (pokud by byly
- // promenne public, jsou zbytecne)
- public void setActualValue(int actualValue) {
- this.actualValue = actualValue;
- }
- /**
- * Getter kvuli potomkovi
- * @return
- */
- public int getNumOfSides() {
- return numOfSides;
- }
- @Override
- public String toString() {
- return "pocet stran: " + this.numOfSides + ", aktualni hodnota: " + this.actualValue;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement