Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.57 KB | None | 0 0
  1. /* UTF-8 encoding: Příliš žluťoučký kůň úpěl ďábelské ódy. */
  2.  
  3. /************************************************************
  4.  * Instance třídy {@code Osoba} představují ...
  5.  *
  6.  * @author  Jan Janáček
  7.  * @version 26.00.0000 — 2019-10-07
  8.  */
  9. public class Osoba {
  10.   //== KONSTANTNÍ ATRIBUTY TŘÍDY ===========================
  11.   // //== PROMĚNNÉ ATRIBUTY TŘÍDY =============================
  12.   //== STATICKÝ INICIALIZAČNÍ BLOK =========================
  13.  /**************
  14.  * Určuje barvu hlavy
  15.  */
  16.   private static final Barva BARVA_HLAVY = Barva.RUZOVA;
  17.  /**************
  18.  * Implementuje barvu těla
  19.  */
  20.   private static final Barva IMPL_BARVA_TELA = Barva.SEDA;
  21.  /**************
  22.  * Implementuje velikost hlavy
  23.  */
  24.   private static final int IMPL_VELIKOST_HLAVY = 60;
  25.  /**************
  26.  * Poměr hlavu k tělu
  27.  */
  28.   private static final double POMER_HLAVA_TELO = 6.0/8.0;
  29.  /**************
  30.  * Poměr výšky k šířce
  31.  */
  32.   private static final double POMER_TELO_VYS_SIR = 8.0/7.0;
  33.  /**************
  34.  * Proměnná pro ukládání počtu osob
  35.  */
  36.   private static int pocet = 0;
  37.   //== KONSTANTNÍ ATRIBUTY INSTANCÍ ========================
  38.  /**************
  39.  * Vytváří hlavu
  40.  */
  41.   private final Elipsa hlava;
  42.  /**************
  43.  * Vytváří telo
  44.  */
  45.   private final Obdelnik telo;
  46.   //== PROMĚNNÉ ATRIBUTY INSTANCÍ ==========================
  47.   /**************
  48.  * Napočítává pořadí osob
  49.  */
  50.   private final int PORADI = ++pocet;
  51.   /**************
  52.  * Název osoby
  53.  */
  54.   private String nazev = "";
  55.   //########################################################
  56.   //== KONSTRUKTORY A TOVÁRNÍ METODY ======================
  57.  /************************************************************
  58.  * Třída osoba {@code Osoba} slouží ke vytvoření hlav a těl
  59.  */
  60.   public Osoba(int x, int y, int velikostHlavy, double pomerHlavaTelo, double pomerTelo,Barva barva){
  61.     nazev = "LOL";
  62.     double vyska = velikostHlavy/pomerHlavaTelo;
  63.     double sirka = vyska/pomerTelo;
  64.     double x_hlava = x;
  65.     double x_telo = x;
  66.     if(velikostHlavy<sirka){
  67.       double pulTela = (sirka / 2);
  68.       double pulHlavy = (velikostHlavy / 2);
  69.       double posun = pulTela - pulHlavy;
  70.       x_hlava = (int)posun + x;
  71.     }
  72.     else{
  73.       x_telo = (velikostHlavy/4);
  74.     }
  75.     telo = new Obdelnik((int)x_telo,y+(int)velikostHlavy,(int)sirka,(int)vyska,barva);
  76.     hlava = new Elipsa((int)x_hlava,y,(int)velikostHlavy,(int)velikostHlavy,BARVA_HLAVY);
  77.   }
  78.  /************************************************************
  79.  * Další konstruktor, který odkazuje na ten předešlý
  80.  */
  81.   public Osoba(int x, int y, int velikostHlavy, Barva barvaTela){
  82.     this(x,y,velikostHlavy,POMER_HLAVA_TELO,POMER_TELO_VYS_SIR,barvaTela);
  83.   }
  84.  /************************************************************
  85.  * Další konstruktor, který odkazuje na ten předešlý
  86.  */
  87.   public Osoba(int x, int y, Barva barvaTela){
  88.     this(x,y,IMPL_VELIKOST_HLAVY,barvaTela);
  89.   }
  90. /************************************************************
  91.  * Další konstruktor, který odkazuje na ten předešlý
  92.  */
  93.   public Osoba(){
  94.     this(0,0,IMPL_VELIKOST_HLAVY,IMPL_BARVA_TELA);
  95.   }
  96.   //== PUBLIC METODY TŘÍDY =================================
  97. /************************************************************
  98.  * Vrací hlavu
  99.  */
  100.   public Elipsa getHlava(){
  101.     return hlava;
  102.   }
  103. /************************************************************
  104.  * Vrací tělo
  105.  */
  106.   public Obdelnik getTelo(){
  107.     return telo;
  108.   }
  109. /************************************************************
  110.  * Porovnává šířku útvarů a podle toho vrací souřadnici X
  111.  */
  112.   public int getX(){
  113.     if(hlava.getSirka() < telo.getSirka()){
  114.       return telo.getX();
  115.     }
  116.     else{
  117.       return hlava.getX();
  118.       }
  119.   }
  120. /************************************************************
  121.  * Vrací souřadnici Y
  122.  */
  123.   public int getY(){
  124.     return hlava.getY();
  125.   }
  126.  /************************************************************
  127.  * Porovnává šířku útvarů a podle toho vrací největší šířku
  128.  */
  129.   public int getSirka(){
  130.     if(hlava.getSirka() < telo.getSirka()){
  131.       return telo.getSirka();
  132.     }
  133.     else{
  134.       return hlava.getSirka();
  135.       }
  136.   }
  137.   /************************************************************
  138.  * Sčítá výšku hlavy a těla a vrací výšku celé osoby
  139.  */
  140.   public int getVyska(){
  141.     return telo.getVyska() + hlava.getVyska();
  142.   }
  143.  /************************************************************
  144.  * Vrací název Osoby
  145.  */
  146.   public String getNazev(){
  147.     nazev = getClass().getSimpleName() + "_" + PORADI;
  148.     return nazev;
  149.   }
  150.   /************************************************************
  151.  * Vrací barvu těla osoby
  152.  */
  153.   public Barva getBarvaTela(){
  154.     return telo.getBarva();
  155.   }
  156.  /************************************************************
  157.  * Nastaví novou barvu těla Osoby
  158.  */
  159.   public void setBarvaTela(Barva barva){
  160.     telo.setBarva(barva);
  161.   }
  162.  /************************************************************
  163.  * Překrytí metody String
  164.  */
  165.   @Override
  166.   public String toString() {
  167.     return getNazev() + ": x=" + getX() + ", y=" + getY() +
  168.              ", výška=" + getVyska() +
  169.              ", šířka=" + getSirka() +
  170.              ", barva těla=" + getBarvaTela();
  171.   }
  172.   //== PRIVATE METODY TŘÍDY ================================
  173.  
  174.   //== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ ===============
  175.  
  176.   //== PUBLIC METODY INSTANCÍ ==============================
  177.  
  178.   //== PRIVATE METODY INSTANCÍ =============================
  179. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement