kocourPB

MyObjectsMethods

Nov 8th, 2012
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.77 KB | None | 0 0
  1. package cz.mendelu.pjj.xloksik;
  2. import cz.mendelu.pjj.ObjectsMethod;
  3.  
  4. /**
  5.  * Trieda MyObjectsMethods implementujuca {@link ObjectsMethod}
  6.  * @author Michal Lokšík
  7.  *
  8.  */
  9. public class MyObjectsMethod extends ObjectsMethod {
  10.  
  11.     /**
  12.      * Trieda MyPerson implementujuca Person
  13.      */
  14.     public static class MyPerson extends Person {
  15.         /**
  16.          * konstruktor triedy MyPerson
  17.          * @param name
  18.          * @param surName
  19.          * @param title
  20.          */
  21.         public MyPerson(String name, String surName, String title) {
  22.             super(name, surName, title);
  23.             // TODO Auto-generated constructor stub
  24.         }
  25.         /**
  26.          * prekrytie metody equals()
  27.          */
  28.         @Override
  29.         public boolean equals(Object o) {
  30.             if (o == this){
  31.                 return true;
  32.             }
  33.             if (!(o instanceof MyPerson)){
  34.                 return false;
  35.                 }
  36.             MyPerson mp = (MyPerson)o;
  37.             return mp.name == name &&
  38.                    mp.surName == surName;       /* vrati boolean */
  39.         }
  40.         /**
  41.          * prekrytie metody hashCode()
  42.          */
  43.         @Override
  44.         public int hashCode() {
  45.             int vysledok = name.hashCode() * surName.hashCode();
  46.             return vysledok;
  47.         }
  48.  
  49.     }
  50.     /**
  51.      * Trieda MyAddress implementujuca Address
  52.      */
  53.     public static class MyAddress extends Address {
  54.         /**
  55.          * konstruktor triedy MyAdsress
  56.          * @param city
  57.          * @param street
  58.          * @param number
  59.          */
  60.         public MyAddress(String city, String street, int number) {
  61.             super(city, street, number);
  62.             // TODO Auto-generated constructor stub
  63.         }
  64.         /**
  65.          * prekrytie metody equals()
  66.          */
  67.         @Override
  68.         public boolean equals(Object o) {
  69.             if (o == this){
  70.                 return true;
  71.             }
  72.             if (!(o instanceof MyAddress)){
  73.                 return false;
  74.                 }
  75.             MyAddress ma = (MyAddress)o;
  76.             return ma.city == city &&
  77.                    ma.street == street &&
  78.                    ma.number == number;
  79.         }
  80.         /**
  81.          * prekrytie metody hashCode()
  82.          */
  83.         @Override
  84.         public int hashCode() {
  85.             int vysledok = (city.hashCode() * street.hashCode()) * number;
  86.             return vysledok;
  87.         }
  88.        
  89.     }
  90.     /**
  91.      * Trieda MyPerssonAddress implementujuca PersonAddress
  92.      */
  93.     public static class MyPersonAddress extends PersonAddress {
  94.         /**
  95.          * konstruktor triedy MyPerssonAddress
  96.          * @param person
  97.          * @param address
  98.          */
  99.         public MyPersonAddress(Person person, Address address) {
  100.             super(person, address);
  101.             // TODO Auto-generated constructor stub
  102.         }
  103.         /**
  104.          * prekrytie metody equals()
  105.          */
  106.         @Override
  107.         public boolean equals(Object o) {
  108.             if (o == this){
  109.                 return true;
  110.             }
  111.             if (!(o instanceof MyPersonAddress)){
  112.                 return false;
  113.                 }
  114.             MyPersonAddress ma = (MyPersonAddress)o;
  115.             return ma.person == person &&
  116.                     ma.city == super.city &&
  117.                     ma.number == super.number &&
  118.                     ma.street == super.street;             
  119.         }
  120.         /**
  121.          * prekrytie metody hashCode()
  122.          */
  123.         @Override
  124.         public int hashCode() {
  125.             int vysledok = (person  == null ? 17 : person.hashCode()) * super.city.hashCode() * super.number * super.street.hashCode();
  126.             return vysledok;
  127.         }
  128.  
  129.     }
  130.     /**
  131.      * zaciatok metody main()
  132.      * @param args
  133.      */
  134.     public static void main(String[] args) {
  135.         /* Persony */
  136.         MyPerson osoba1 = new MyPerson("Michal", "Loksik", null);
  137.         MyPerson osoba2 = new MyPerson("Michal", "Loksik", "Ing.");
  138.         MyPerson osoba3 = new MyPerson("Dedo", "Mraz", "Ing.");
  139.        
  140.         System.out.println("Porovnanie osob:");
  141.         System.out.println(osoba1.equals(osoba2));
  142.         System.out.println(osoba1.equals(osoba3));     
  143.        
  144.         System.out.println("HashCody osob.");
  145.         System.out.println(osoba1.hashCode());
  146.         System.out.println(osoba2.hashCode());
  147.         System.out.println(osoba3.hashCode());
  148.        
  149.         System.out.println();
  150.        
  151.         /* Adresy */
  152.         MyAddress adresa1 = new MyAddress("Brno", "Stepanska", 10);
  153.         MyAddress adresa2 = new MyAddress("Brno", "Stepanska", 10);
  154.         MyAddress adresa3 = new MyAddress("Povazska Bystrica", "Rozkvet", 2060);
  155.        
  156.         System.out.println("Porovnanie adries:");
  157.         System.out.println(adresa1.equals(adresa2));
  158.         System.out.println(adresa1.equals(adresa3));
  159.        
  160.         System.out.println("HashCody adries.");
  161.         System.out.println(adresa1.hashCode());
  162.         System.out.println(adresa2.hashCode());
  163.         System.out.println(adresa3.hashCode());
  164.        
  165.         System.out.println();
  166.        
  167.         /* Adresy osob */
  168.         MyPersonAddress prva = new MyPersonAddress(osoba1, adresa1);
  169.         MyPersonAddress druha = new MyPersonAddress(osoba1, adresa1);
  170.         MyPersonAddress tretia = new MyPersonAddress(osoba1, adresa3);
  171.         MyPersonAddress stvrta = new MyPersonAddress(null, adresa3);
  172.        
  173.         System.out.println("Porovnanie adries osob:");
  174.         System.out.println(prva.equals(druha));
  175.         System.out.println(prva.equals(tretia));
  176.         System.out.println(stvrta.equals(tretia));     
  177.        
  178.         System.out.println("HashCody adries osob.");
  179.         System.out.println(prva.hashCode());
  180.         System.out.println(druha.hashCode());
  181.         System.out.println(tretia.hashCode());
  182.         System.out.println(stvrta.hashCode());
  183.  
  184.     }
  185. }
Advertisement
Add Comment
Please, Sign In to add comment