import javax.swing.*;
import java.awt.*;
/*
 * Point2D.java
 *
 * Created on October 26, 2004, 2:31 AM
 */

/**
 *
 * @author  DVS
 */
public class Point2D {
    public int x, y;
    
    
    /** Creates a new instance of Point2D */
    public Point2D() {
        x = 0;
        //y=0;
    }
    
    public Point2D(int tx, int ty){
        x = tx;
        this.y = ty;
    }
    
    private double distOrig(){
        double d;
        d = Math.sqrt(x*this.x + y*y);
        return d;
    }
    
    private double distFrom(Point2D t){
        double d;
        d = (x - t.x)*(x - t.x) + (this.y - t.y)*(y - t.y);
        d = Math.sqrt(d);
        return d;
    }
    
    public static void main(String argv[]){
        Point2D p1, p2, p3;
        Circle c1, c2;
        p1 = new Point2D();
        System.out.println("Hello World");
        System.out.println("x = "+p1.x+" y = "+p1.y);
        
        p2 = new Point2D(10, 20);
        System.out.println("Hello World");
        System.out.println("x = "+p2.x+" y = "+p2.y);
        System.out.println("The distance from the origen is: "+p2.distOrig());
        p3 = new Point2D(10,50);
        System.out.println("The distance between points is: "+p2.distFrom(p1));
        c1 = new Circle(10);
        c2 = new Circle(10, 10, 5);
        System.out.println("Radius = "+c1.radius);
        System.out.println("center at "+c1.x+" and "+c1.y);
        System.out.println("area is "+c1.area());
        System.out.println("-------------------------------------");
        System.out.println("Radius = "+c2.radius);
        System.out.println("center at "+c2.x+" and "+c2.y);
        System.out.println("area is "+c2.area());
        
        // GUI examples
        
        JFrame f = new JFrame("My Test Frame");
        f.getContentPane().setLayout(new FlowLayout());
        JButton button1;
        JTextField field = new JTextField("Some text", 10);
        button1 = new JButton("My Button");
        f.getContentPane().add(button1);
        f.getContentPane().add(field);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setSize(200, 300);
        f.setVisible(true);
        
        
    }
    
}

/*
Note that the instance variables are private/public. Both the methods are also 
 declared private, however they can be used within the class including the main method.
*/


class Circle extends Point2D{
    int radius;
    public Circle(int r){
        super();
        radius = r;
    }
    
    public Circle(int cx, int cy, int cr){
        super(cx,cy);
        radius = cr;
    }
    
    public double area(){
        return Math.PI*radius*radius;
    }
    
    //  circumference method here - returns a double value
}

    Source: geocities.com/dvshah