public class nokta
{ 
  // iki boyutlu uzayda(kartezien koordinat sistemi)
  // bir nokta tanımlar
  protected double x;
  protected double y;
  
  //kurucu metodlar
  public nokta()  //boş nokta
  {noktagir(0.0,0.0);}
  //noktayıx,y,z noktalarıyla tanımla
  public nokta(double xi,double yi)
  {noktagir(xi,yi);}
  public nokta(nokta P) //noktayı diğer bir nokta cinsinden tanımla
  {noktagir(P.xoku(),P.yoku());}
  
  //değişken girdi metodları
  public void noktagir(double xi,double yi)
  {x=xi;y=yi;}
  public void xgir(double xi) { x=xi; }
  public void ygir(double yi) { y=yi; }

  //değişken çıktı metodları
  public double xoku()
  {return x;}
  public double yoku()
  {return y;}

  // mesafe metodu: iki nokta arasındaki mesafeyi hesaplar
  public double mesafe(nokta P1) 
  {return Math.sqrt((x-P1.xoku())*(x-P1.xoku())+(y-P1.yoku())*(y-P1.yoku())); }
  // R noktanın koordinat merkezinden uzaklığını hesaplar
  public double R()
  {return Math.sqrt(x*x+y*y);}
  public double teta()
  {//noktanın x ekseniyle yaptığı açı (radyan)
  return Math.acos(x/R());}

  public String noktacikti()
  {String s=x+"*i + "+y+"*j";
   return s;
  }
  public String noktaPolarcikti()
  {String s="R = "+R()+" teta = "+teta()+" radyan";
   return s;
  }
  public String cikti()
  {
   String s1="Kartezien nokta = "+noktacikti()+"\n";
         s1+="Polar nokta ="+noktaPolarcikti()+"\n";
   return s1;}      
  //boolean metodlar
  public boolean esittir(nokta P)
  {boolean b=(x==P.xoku())&&(y==P.yoku()); return b;}
  public boolean buyuktur(nokta P)
  {boolean b=(R()>P.R());return b;}
  public boolean kucuktur(nokta P)
  {boolean b=(R()<P.R());return b;}
}