aboutsummaryrefslogtreecommitdiffstats
path: root/csci1913/Java/lab6_strap012.java
diff options
context:
space:
mode:
Diffstat (limited to 'csci1913/Java/lab6_strap012.java')
-rw-r--r--csci1913/Java/lab6_strap012.java64
1 files changed, 64 insertions, 0 deletions
diff --git a/csci1913/Java/lab6_strap012.java b/csci1913/Java/lab6_strap012.java
new file mode 100644
index 0000000..62e364a
--- /dev/null
+++ b/csci1913/Java/lab6_strap012.java
@@ -0,0 +1,64 @@
+class Polygon {
+ private int[] sideLengths;
+
+ public Polygon(int sides, int... lengths) {
+ int index = 0;
+ sideLengths = new int[sides];
+ for (int length : lengths) {
+ sideLengths[index] = length;
+ index += 1;
+ }
+ }
+
+ public int side(int number) {
+ return sideLengths[number];
+ }
+
+ public int perimeter() {
+ int total = 0;
+ for (int index = 0; index < sideLengths.length; index += 1) {
+ total += side(index);
+ }
+ return total;
+ }
+}
+
+class Rectangle extends Polygon {
+ public Rectangle(int l, int w) {
+ super(4, l, w, l, w);
+ }
+ public int area() {
+ return this.side(0)*this.side(1);
+ }
+}
+
+class Square extends Rectangle {
+ public Square(int l) {
+ super( l, l);
+ }
+ // public int area() {
+ // return this.side(0)*this.side(1);
+ // }
+}
+
+class Shapes {
+ public static void main(String[] args) {
+ Rectangle wreck = new Rectangle(3, 5);
+
+ System.out.println(wreck.side(0)); // 3 1 point.
+ System.out.println(wreck.side(1)); // 5 1 point.
+ System.out.println(wreck.side(2)); // 3 1 point.
+ System.out.println(wreck.side(3)); // 5 1 point.
+ System.out.println(wreck.area()); // 15 1 point.
+ System.out.println(wreck.perimeter()); // 16 1 point.
+
+ Square nerd = new Square(7);
+
+ System.out.println(nerd.side(0)); // 7 1 point.
+ System.out.println(nerd.side(1)); // 7 1 point.
+ System.out.println(nerd.side(2)); // 7 1 point.
+ System.out.println(nerd.side(3)); // 7 1 point.
+ System.out.println(nerd.area()); // 49 1 point.
+ System.out.println(nerd.perimeter()); // 28 1 point.
+ }
+} \ No newline at end of file