Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Omar Natour
- * 10/17/2016
- * Csc-220 Data Structures
- * Hw5 Triangle Class
- * Create a class that exemplifies a triangle
- * Ojnatour0001@student.stcc.edu
- */
- public class Triangle extends Shape {
- private double side1;
- private double side2;
- private double side3;
- //// Constructors///////////////////////////////////////////////////////////
- public Triangle() {
- this(1, 1, 1, "white", false);
- }
- public Triangle(double a, double b, double c) {
- this(a,b,c, "white", false);
- }
- public Triangle(double a, double b, double c, String color, boolean filled) {
- super(color, filled);
- setTriangle(a, b, c);
- }
- ////Methods////////////////////////////////////////////////////////////////
- @Override
- public double getArea() {
- double s = getPerimeter() / 2; // semiperimeter
- return Math.sqrt(s * (s - getSide1()) * (s - getSide2()) * (s - getSide3()));
- }
- @Override
- public double getPerimeter() {
- return (getSide1() + getSide2() + getSide3());
- }
- @Override
- public String toString() {
- return ("side1 = " + getSide1() + ", side2 = " + getSide2() + ", side 3 = " + getSide3());
- }
- ////Getters & Setters//////////////////////////////////////////////////////
- public double getSide1() {
- return side1;
- }
- public void setSide1(double side1) {
- if (side1 > 0)
- this.side1 = side1;
- else
- throw new InvalidSideException('1');
- }
- public double getSide2() {
- return side2;
- }
- public void setSide2(double side2) {
- if (side2 > 0)
- this.side2 = side2;
- else
- throw new InvalidSideException('2');
- }
- public double getSide3() {
- return side3;
- }
- public void setSide3(double side3) {
- if (side3 > 0)
- this.side3 = side3;
- else
- throw new InvalidSideException('3');
- }
- private void setTriangle(double a, double b, double c) {
- if ((a + b > c) && (a + c > b) && (b + c > a)) {
- setSide1(a);
- setSide2(b);
- setSide3(c);
- }else
- throw new InvalidSideException();
- }
- }
- ////Side Exceptions////////////////////////////////////////////////////////////
- @SuppressWarnings("serial")
- class InvalidSideException extends RuntimeException {
- public InvalidSideException() {
- super("The three sides provided do not create a triangle.");
- }
- public InvalidSideException(char side) {
- super("Invalid side: " + side);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement