Advertisement
Omar_Natour

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

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