Skip to content

Commit d30af91

Browse files
committed
Change various shape classes to inherit from parent classes.
Implement test code to test different shapes.
1 parent 8da3c61 commit d30af91

4 files changed

Lines changed: 26 additions & 50 deletions

File tree

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,9 @@
11
package com.codenext.day8;
22

3-
public class EquilateralTriangle {
3+
public class EquilateralTriangle extends IsoscelesTriangle{
44

5-
private double a, b, c;
6-
7-
public IsoscelesTriangle(double equalSide, double c) {
8-
this.a = equalSide;
9-
this.b = equalSide;
10-
this.c = c;
11-
}
12-
13-
public double area() {
14-
double p = perimeter() / 2;
15-
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
5+
public EquilateralTriangle(double side) {
6+
super(side, side);
7+
setShapeType("EquilateralTriangle");
168
}
17-
18-
public double perimeter() {
19-
return a + b + c;
20-
}
21-
229
}
Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,8 @@
11
package com.codenext.day8;
22

3-
public class IsoscelesTriangle {
4-
5-
private double a, b, c;
6-
3+
public class IsoscelesTriangle extends Triangle{
74
public IsoscelesTriangle(double equalSide, double c) {
8-
setSides(equalSide, c);
9-
}
10-
11-
public void setSides(double equalSide, double c) {
12-
this.a = equalSide;
13-
this.b = equalSide;
14-
this.c = c;
15-
}
16-
17-
public void setSideAndAngle(double equalSide, double angle) {
18-
this.a = equalSide;
19-
this.b = equalSide;
20-
this.c = Math.sin(Math.toRadians(angle)) * equalSide;
21-
}
22-
23-
public double area() {
24-
double p = perimeter() / 2;
25-
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
26-
}
27-
28-
public double perimeter() {
29-
return a + b + c;
5+
super(equalSide, equalSide, c);
6+
setShapeType("IsoscelesTriangle");
307
}
318
}

‎src/com/codenext/day8/Shape.java‎

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
11
package com.codenext.day8;
22

3-
public class Shape {
3+
public abstract class Shape {
44

55
private String shapeType;
66

77
public Shape(String shapeType) {
88
this.shapeType = shapeType;
99
}
1010

11-
public double area() {
12-
return 0;
13-
}
11+
public abstract double area();
1412

15-
public double perimeter() {
16-
return 0;
17-
}
13+
public abstract double perimeter();
1814

1915
@Override
2016
public String toString() {
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.codenext.day8;
2+
3+
import java.util.ArrayList;
4+
5+
public class ShapeTest {
6+
7+
public static void main(String[] args) {
8+
ArrayList<Shape> shapes = new ArrayList<>();
9+
shapes.add(new Triangle(100,200, 150));
10+
shapes.add(new IsoscelesTriangle(100,150));
11+
shapes.add(new EquilateralTriangle(100));
12+
shapes.add(new Rectangle(100,200));
13+
14+
System.out.println(shapes);
15+
}
16+
}

0 commit comments

Comments
 (0)