/**
Verwendung des Schlüsselworts this
*/
/*-----------------------------------------------------------------------*/

class Punkt
{  int x,y;
   String name;

   Punkt(int x, int y, String name)
   {
      this.x = x; 
      this.y = y;
      this.name = name;
   }

   Punkt()
   {  this(0, 0, "unbenannt");  }

   Punkt(String name)
   {  this(0, 0, name);  }

   Punkt(int x, int y)
   {  this(x, y, "unbenannt");  }
     
   /**
   *  Bestimmt das Maximum dieses Punktes und des im
   *  Parameter angegebenen Punktes p.
   *  "Dieser" Punkt wird über "this" zurückgegeben.
   *  @param p Vergleichspunkt
   *  @return größerer Punkt
   */
   Punkt maximum(Punkt p)
   {  if (laenge() > p.laenge())
         return this;
      else
         return p;
   }
   
   /**
   *  Berechnet den Abstand des Punktes vom Ursprung
   *  @return Laenge=Abstand vom Punkt (0,0)
   */
   double laenge()
   {  return Math.sqrt(x*x + y*y); }

   /**
   *  Ausgeben des Punktes
   */   
   void ausgeben()
   {  System.out.println(name + "(" + x + "," + y + ")"); }
}
