// procedural programming // imperative programming // object-oriented programming // console.next() // output.println() // rand.nextInt() public class PointClient { public static void main(String[] args) { // int x1 = 5; // int y1 = 9; // int x2 = -3; // int y2 = 3; // // procedural version // System.out.println("Point 1 distance from origin: " + distanceFromOrigin(x1, y1)); // System.out.println("Point 2 distance from origin: " + distanceFromOrigin(x2, y2)); // System.out.println("Distance between points: " + distanceBetween(x1, y1, x2, y2)); // translate(x1, y1, 2, 2); // System.out.println("Point 1 distance from origin after translate: " + distanceFromOrigin(x1, y1)); // System.out.println(); Point p1 = new Point(); p1.x = 5; p1.y = 9; Point p2 = new Point(); p2.x = -3; p2.y = 3; // // partially encapsulated version // System.out.println("Point 1 distance from origin: " + distanceFromOrigin(p1.x, p1.y)); // System.out.println("Point 2 distance from origin: " + distanceFromOrigin(p2.x, p2.y)); // System.out.println("Distance between points: " + distanceBetween(p1.x, p1.y, p2.x, p2.y)); // System.out.println(); // // more encapsulated version // System.out.println("Point 1 distance from origin: " + distanceFromOrigin(p1)); // System.out.println("Point 2 distance from origin: " + distanceFromOrigin(p2)); // System.out.println("Distance between points: " + distanceBetween(p1, p2)); // translate(p1, 2, 2); // System.out.println("Point 1 distance from origin after translate: " + distanceFromOrigin(p1)); // System.out.println(); // object-oriented version System.out.println("Point 1 distance from origin: " + p1.distanceFromOrigin()); System.out.println("Point 2 distance from origin: " + p2.distanceFromOrigin()); System.out.println("Distance between points: " + p1.distanceFrom(p2)); p1.translate(2, 2); System.out.println("Point 1 distance from origin after translate: " + p1.distanceFromOrigin()); System.out.println(); } // public static double distanceFromOrigin(int x, int y) { // return Math.sqrt(x * x + y * y); // } // // public static double distanceBetween(int x1, int y1, int x2, int y2) { // return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); // } // // public static void translate(int x, int y, int dx, int dy) { // } // // public static double distanceFromOrigin(Point p) { // return Math.sqrt(p.x * p.x + p.y * p.y); // } // // public static double distanceBetween(Point p1, Point p2) { // return Math.sqrt((p2.x - p1.x) * (p2.x - p1.x) + (p2.y - p1.y) * (p2.y - p1.y)); // } // // public static void translate(Point p, int dx, int dy) { // p.x += dx; // p.y += dy; // } }