// Lecture13 -- encapsulation /* assume s1 +----+ s2 | | s4 | | +----+ s3 */ class Quad { private String type; private double s1; private double s2; private double s3; private double s4; public Quad(String t, double a, double b, double c, double d) { type = t; s1 = a; s2 = b; s3 = c; s4 = d; } public double getArea() { double area; if (type.equals("Rect")) area = rect(); else if (type.equals("Squa")) area = squa(); else if (type.equals("Trap")) area = trap(); else area = -1; return area; } private double rect() { return s1*s2; } private double squa() { return rect(); } private double trap() { return (0.5)*s2*(s1+s3); } } // class Quad public class L13_area { public static void disp(String s) { System.out.println(s); } public static void main(String[] args) { // yes, the following is inefficient // investigate inheritance to "clean it up" Quad a = new Quad("Squa",1,1,1,1); Quad b = new Quad("Rect",1,2,1,2); Quad c = new Quad("Trap",2,1,3,1); disp("Area of square: " + a.getArea()); disp("Area of rect: " + b.getArea()); disp("Area of trap: " + c.getArea()); } } // class encaps /* output: Area of square: 1.0 Area of rect: 2.0 Area of trap: 2.5 */