Aula 1 de 0
Em Progresso
3. DADOS/OBJETOS ANTI-SIMETRIA
Listing 6-5
Procedural Shape
public class Square { public Point topLeft; public double side; public class Rectangle { public Point topLeft; public double height; public double width; public class Circle ( public Point center; public double radius; public class Geometry { public final double PI = 3.141592653589793; public double area(Object shape) throws NoSuchShapeException if (shape instanceof Square) { Square s = (Square)shape; return s.side * s.side; else if (shape instanceof Rectangle) { Rectangle r = (Rectangle)shape; return r.height * r.width; else if (shape instanceof Circle) { Circle c = (Circle)shape; return PI * c.radius * c.radius; throw new NoSuchShapeException();
Listing 6-6
Polymorphic Shapes
public class Square implements Shape { private Point topLeft; private double side; public double area() { return side*side; } } public class Rectangle implements Shape { private Point topLeft; private double height; private double width; public double area() { return height * width; public class Circle implements Shape { private Point center; private double radius; public final double PI = 3.141592653589793; public double area() { return PI * radius * radius;