Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package GeometricFigures;
- abstract public class Figure {
- protected String color;
- protected String type;
- abstract void modifyColor(String string, Observer o);
- protected abstract double getPerimeter();
- abstract public double computePerimeter();
- public Figure(String color, String type) {
- this.color = color;
- this.type = type;
- }
- public String getColor() {
- return color;
- }
- public String getType() {
- return type;
- }
- public String toString() {
- return type + " " + color + " " + Double.toString(computePerimeter());
- }
- public boolean equals(Object o) {
- return (o instanceof Figure) && ((Figure)o).type==type && ((Figure)o).getPerimeter() == this.getPerimeter();
- }
- }
- package GeometricFigures;
- public class Circle extends Figure{
- double pCircle;
- int radius;
- int r;
- public Circle(String color, String type, int radius) {
- super(type,color);
- this.radius = radius;
- }
- public void setRadius(int r) {
- this.radius = r;
- }
- public void setType(String t) {
- this.type = t;
- }
- public void setColor(String c) {
- this.color = c;
- }
- public double computePerimeter() {
- return pCircle = 2 * Math.PI * radius;
- }
- public double getPerimeter() {
- return this.pCircle;
- }
- public void modifyColor(String newcolor, Observer o) {
- this.color = newcolor;
- o.notifyObserver();
- }
- }
- package GeometricFigures;
- public class Square extends Figure{
- int side;
- int s;
- public double pSquare;
- String c;
- String t;
- public Square(String color, String type, int side){
- super(type, color);
- this.side = side;
- }
- public void setSide(int s) {
- this.side = s;
- }
- public void setType(String t) {
- type = t;
- }
- public void setColor(String c) {
- color = c;
- }
- public double computePerimeter() {
- return pSquare = 4 * side;
- }
- public double getPerimeter() {
- return this.pSquare;
- }
- public void modifyColor(String newcolor, Observer o) {
- this.color = newcolor;
- o.notifyObserver();
- }
- }
- package GeometricFigures;
- public class Triangle extends Figure{
- int side1, side2, side3;
- int sd1, sd2, sd3;
- int pTriangle;
- public Triangle(String color, String type, int side1, int side2, int side3) {
- super(type,color);
- this.side1 = side1;
- this.side2 = side2;
- this.side3 = side3;
- }
- public void setTriangle(int sd1, int sd2, int sd3) {
- this.side1 = sd1;
- this.side2 = sd2;
- this.side3 = sd3;
- }
- public void setType(String t) {
- type = t;
- }
- public void setColor(String c) {
- color = c;
- }
- public double computePerimeter() {
- return pTriangle = side1 + side2 + side3;
- }
- public double getPerimeter() {
- return this.pTriangle;
- }
- public void modifyColor(String newcolor, Observer o) {
- this.color = newcolor;
- o.notifyObserver();
- }
- }
- package GeometricFigures;
- public class Observer{
- private Figure[] figures;
- private int i = 0;
- private int j = 0;
- private int noOfFigures;
- public Observer(int noOfFigures) {
- this.noOfFigures = noOfFigures;
- figures = new Figure[noOfFigures];
- }
- public boolean addFigure(Figure f) {
- if(i==0) {
- figures[i] = f;
- i++;
- return true;
- }
- if(i==figures.length) {
- return false;
- }
- for(j=0; j<figures.length; j++) {
- if((f.equals(figures[j])==true)){
- return false;
- }
- }
- if(i<noOfFigures) {
- figures[i] = f;
- i++;
- }
- return true;
- }
- public void notifyObserver() {
- System.out.println("MODIFIED");
- }
- public void printAllFigure() {
- for(i=0 ; i<figures.length ; i++) {
- System.out.println(figures[i]);
- }
- }
- }
- package GeometricFigures;
- public class Main {
- public static void main(String [] args) {
- Figure c1 = new Circle("Circle","Blue",5);
- ((Circle)c1).computePerimeter();
- System.out.println(c1);
- ((Circle)c1).setRadius(4);
- ((Circle)c1).computePerimeter();
- System.out.println(c1);
- ((Circle)c1).setType("Rectangle");
- System.out.println(c1);
- ((Circle)c1).setColor("Pink");
- System.out.println(c1);
- Figure s1 = new Square("Square","Black",4);
- ((Square)s1).computePerimeter();
- System.out.println(s1);
- ((Square)s1).setSide(3);
- ((Square)s1).computePerimeter();
- System.out.println(s1);
- ((Square)s1).setType("Hexagon");
- System.out.println(s1);
- ((Square)s1).setColor("Brown");
- System.out.println(s1);
- Figure t1 = new Triangle("Triangle","Green",1,2,3);
- ((Triangle)t1).computePerimeter();
- System.out.println(t1);
- ((Triangle)t1).setTriangle(4,5,6);
- ((Triangle)t1).computePerimeter();
- System.out.println(t1);
- ((Triangle)t1).setType("Cube");
- System.out.println(t1);
- ((Triangle)t1).setColor("White");
- System.out.println(t1);
- Figure t2 = new Triangle("Triangle","Green",1,2,3);
- ((Triangle)t2).computePerimeter();
- System.out.println(t2);
- ((Triangle)t2).setTriangle(4,5,6);
- ((Triangle)t2).computePerimeter();
- System.out.println(t2);
- ((Triangle)t2).setType("Cube");
- System.out.println(t2);
- ((Triangle)t2).setColor("White");
- System.out.println(t2);
- Observer o1= new Observer(4);
- o1.addFigure(c1);
- o1.addFigure(s1);
- o1.addFigure(t1);
- o1.addFigure(t2);
- o1.printAllFigure();
- c1.modifyColor("Yellow",o1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement