kocourPB

MyProduct

Nov 24th, 2012
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.48 KB | None | 0 0
  1. package cz.mendelu.pjj.xloksik;
  2. import java.io.File;
  3. import java.math.BigDecimal;
  4.  
  5. import cz.mendelu.pjj.*;
  6. import cz.mendelu.pjj.Product.Category;
  7.  
  8.  
  9.  
  10. /**
  11.  * trieda MyProduct implementujúca rozhranie {@link Product}
  12.  * @author Michal Lokšík
  13.  * @version 19.11.2012
  14.  */
  15. public class MyProduct implements Product {
  16.    
  17.     private String productName; /* premenná uchovávajúca meno produktu */
  18.    
  19.     private BigDecimal prize;   /* premenná uchovávajúca cenu produktu */
  20.    
  21.     private final Category category;    /* premenná uchovávajúca kategóriu produktu */
  22.    
  23.     private File pictureFile;   /* premenná uchovávajúca cestu k obrázku súboru */
  24.    
  25.     /**
  26.      * konstruktor triedy MyProduct
  27.      * @param productName
  28.      * @param prize
  29.      * @param category
  30.      * @param pictureName
  31.      */
  32.     public MyProduct(String productName, double prize, String pictureName, Category category ) {
  33.         super();
  34.         this.productName = productName;
  35.         this.prize = BigDecimal.valueOf(prize);
  36.         this.category = category;
  37.        
  38.         String aktDir = System.getProperty("user.dir"); /* zistenie mojho aktualneho pracovneho adresara */
  39.         /**
  40.          * vytvorenie instancie triedy File
  41.          * adresa sa sklada z ...\src\cz\mendelu\pjj\xloksik\+parameter z konstruktoru (nazov suboru.pripona)
  42.          */
  43.         this.pictureFile = new File(aktDir + File.separator + "src" + File.separator + "cz" + File.separator + "mendelu" + File.separator + "pjj" + File.separator + "xloksik" + File.separator + pictureName);
  44.         // pre kontrolu System.out.println(pictureFile.getAbsolutePath());
  45.     }
  46.  
  47.     /**
  48.      * metóda vracajúca názov produktu
  49.      */
  50.     @Override
  51.     public String getName() {
  52.         return productName;
  53.     }
  54.    
  55.     /**
  56.      * metóda vracajúca cenu produktu
  57.      */
  58.     @Override
  59.     public BigDecimal getPrize() {
  60.         return prize;
  61.     }
  62.    
  63.     /**
  64.      * metóda vracajúca adresu obrázku produktu
  65.      */
  66.     @Override
  67.     public File getPictureFile() {
  68.         return pictureFile;
  69.     }
  70.    
  71.     /**
  72.      * metóda vracajúca kategóriu produktu
  73.      */
  74.     @Override
  75.     public Category getCategory() {
  76.         return category;
  77.     }
  78.    
  79.     /**
  80.      * prekrytie metody equals()
  81.      */
  82.     @Override
  83.     public boolean equals(Object o) {
  84.         if (o == this){
  85.             return true;
  86.         }
  87.         if (!(o instanceof MyProduct)){
  88.             return false;
  89.             }
  90.         MyProduct mp = (MyProduct)o;
  91.         return mp.productName == productName;   /* vrati boolean */
  92.     }
  93.     /**
  94.      * prekrytie metody hashCode()
  95.      */
  96.     @Override
  97.     public int hashCode() {
  98.         int vysledok = productName.hashCode();
  99.         return vysledok;
  100.     }
  101.    
  102.     enum MyCategory implements Category {
  103.         ovocie, zelenina, pecivo, maso, alkohol
  104.     }
  105.    
  106.     /**
  107.      * nasledujuci kod sluzi len na otestovanie funkcnosti niektorych metod a nie je sucastou vypracovania zadania ulohy !!!
  108.      */
  109.     @Override
  110.     public String toString() {
  111.         return "MyProduct [productName=" + productName + ", prize=" + prize
  112.                 + ", category=" + category + ", pictureFile=" + pictureFile
  113.                 + "]";
  114.     }
  115.    
  116.     public static void main(String[] args) {
  117.         MyProduct rozok = new MyProduct("rozek", 5.0, "bear.jpg", MyCategory.pecivo);
  118.         MyProduct banan = new MyProduct("rozek", 6.0, "banan.jpg", MyCategory.ovocie); /* rovnake meno ako objekt rozok */
  119.        
  120.         System.out.println(rozok.toString()); /* vypis info o rozku */
  121.         System.out.println(banan.toString()); /* vypis info o banane */
  122.        
  123.         System.out.println(rozok.equals(banan)); /* porovnanie rozku a bananu ... mali by sa rovnat pretoze maju rovnake mena */
  124.        
  125.         System.out.println(rozok.hashCode());   /* hashcody budu rovnake */
  126.         System.out.println(banan.hashCode());
  127.         }
  128.    
  129.    
  130.  
  131. }
Advertisement
Add Comment
Please, Sign In to add comment