package oop;

public class Comparable_Interface {
	/* 
	 * . Die Comparable_Interface hat die Methode: (public int compareTo(T o))
	 * 	- a.compareTo(b): Vergleicht zwei Objekte und gibt:
	 * 		1. 0 zurück, wenn sie gleich sind.
	 * 		2.-1, wenn a kleiner als b ist.
	 * 		3. 1, wenn a größer als b ist.
	 * 
	 * 	- compareTo() wird häufig bei der Sortierung von Objekten verwendet, da es die Reihenfolge bestimmt.
	 * 	
	 * . Wichtig: Das Objekt, das die Methode aufruft, und das Objekt, 
	 * 				das an sie übergeben wird, müssen vom gleichen Typ sein.
	 * 		
	 */
	
	public static void main(String[] args) {
		
		Integer a = 128;
		Integer d = 128;
		
        Integer b = 220;
        Integer c = 5;
        
        // Hier wird den 'Inhalt' der Objekte überprüft!!
        System.out.println(a.equals(d)); // true da a == b
        System.out.println(a.equals(b)); // false da a < b
        
        System.out.println( a.compareTo(b) ); //-1 da a < b    
        System.out.println( a.compareTo(c) ); // 1 da a > b
        System.out.println( a.compareTo(d) ); // 0 da a == b
		
        
        // Compiler Fehler: ****************************************************
        
        Double zahl = 12.4;
        Integer zahl2 = 12;
        
        // System.out.println(zahl.compareTo(zahl2)); // Fehler , zahl1 und zahl2 sollen om gleichen Typ sein
        
      //  System.out.println(zahl.equals(zahl2)); //Unlikely argument type for equals(): Integer seems to be unrelated to Double
	}
}
