Omar_Natour

Natour, O. 10/24/16 Csc-220 Triangle Class

Oct 24th, 2016
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.32 KB | None | 0 0
  1. /*Omar Natour
  2.  * 10/17/2016
  3.  * Csc-220 Data Structures
  4.  * Hw5 Triangle Class
  5.  * Create a class that exemplifies a triangle
  6.  */
  7.  
  8. public class Triangle extends Shape {
  9.  
  10.     private double side1;
  11.     private double side2;
  12.     private double side3;
  13.  
  14.     //// Constructors///////////////////////////////////////////////////////////
  15.    
  16.     public Triangle() {
  17.         this(1, 1, 1, "white", false);
  18.     }
  19.  
  20.     public Triangle(double a, double b, double c) {
  21.         this(a,b,c, "white", false);
  22.     }
  23.  
  24.     public Triangle(double a, double b, double c, String color, boolean filled) {
  25.         super(color, filled);
  26.         setTriangle(a, b, c);
  27.     }
  28.    
  29.     ////Methods////////////////////////////////////////////////////////////////
  30.  
  31.     @Override
  32.     public double getArea() {
  33.         double s = getPerimeter() / 2; // semiperimeter
  34.  
  35.         return Math.sqrt(s * (s - getSide1()) * (s - getSide2()) * (s - getSide3()));
  36.     }
  37.  
  38.     @Override
  39.     public double getPerimeter() {
  40.         return (getSide1() + getSide2() + getSide3());
  41.     }
  42.  
  43.     @Override
  44.     public String toString() {
  45.         return ("side1 = " + getSide1() + ", side2 = " + getSide2() + ", side 3 = " + getSide3());
  46.     }
  47.  
  48.     ////Getters & Setters//////////////////////////////////////////////////////
  49.    
  50.     public double getSide1() {
  51.         return side1;
  52.     }
  53.  
  54.     public void setSide1(double side1) {
  55.         if (side1 > 0)
  56.             this.side1 = side1;
  57.         else
  58.             throw new InvalidSideException('1');
  59.     }
  60.  
  61.     public double getSide2() {
  62.         return side2;
  63.     }
  64.  
  65.     public void setSide2(double side2) {
  66.         if (side2 > 0)
  67.             this.side2 = side2;
  68.         else
  69.             throw new InvalidSideException('2');
  70.     }
  71.  
  72.     public double getSide3() {
  73.         return side3;
  74.     }
  75.  
  76.     public void setSide3(double side3) {
  77.         if (side3 > 0)
  78.             this.side3 = side3;
  79.         else
  80.             throw new InvalidSideException('3');
  81.     }
  82.    
  83.     private void setTriangle(double a, double b, double c) {
  84.         if ((a + b > c) && (a + c > b) && (b + c > a)) {
  85.             setSide1(a);
  86.             setSide2(b);
  87.             setSide3(c);
  88.         }else
  89.             throw new InvalidSideException();
  90.     }
  91. }
  92.  
  93. ////Side Exceptions////////////////////////////////////////////////////////////
  94.  
  95. @SuppressWarnings("serial")
  96. class InvalidSideException extends RuntimeException {
  97.  
  98.     public InvalidSideException() {
  99.         super("The three sides provided do not create a triangle.");
  100.     }
  101.  
  102.     public InvalidSideException(char side) {
  103.         super("Invalid side: " + side);
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment