Как создать пресет класса с параметрами - PullRequest
0 голосов
/ 18 июня 2020

Например, у меня есть class Shape, и я хочу, чтобы было несколько предварительно закодированных объектов с некоторыми параметрами Cube(int side), Dodecahedron(Color color), Tetrahedron(int volume). Параметр не позволяет делать как в классе Color, потому что мы не можем делать на них ссылки c в статике. Как это сделать?

Отредактировано: Пример кода :

class SomeClass{
    shape = new Cube(Color.blue);
}

public class Shape {
    private Polygon3D[] polygons;
    private Color color;

    Shape(Color color, Polygon3D... polygons) {
        this.color = color;
        this.polygons = polygons;
        sortPolygons();
        setPolygonColor();
    }

    //public final static Shape Cube = new Shape(); doesn't work because i need parameters
}

Чтобы сделать предустановку, я должен делать такие вещи, но нет возможности установить параметры

class Cube extends Shape {
    Cube(Color Color, int size) {
        super(Color, polygons);
        s = size;
    }

    private int s;
    private static Point3D[] p = { null, new Point3D(s, -s, -s), new Point3D(s, s, -s), new Point3D(s, s, s),
            new Point3D(s, -s, s), new Point3D(-s, -s, -s), new Point3D(-s, s, -s), new Point3D(-s, s, s),
            new Point3D(-s, -s, s) };
    private static Polygon3D[] polygons = { new Polygon3D(p[1], p[2], p[3], p[4]),
            new Polygon3D(p[5], p[6], p[7], p[8]), new Polygon3D(p[1], p[2], p[6], p[5]),
            new Polygon3D(p[1], p[5], p[8], p[4]), new Polygon3D(p[2], p[6], p[7], p[3]),
            new Polygon3D(p[4], p[3], p[7], p[8]) };
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...