Установка центра круга в качестве значения класса точки - PullRequest
0 голосов
/ 28 марта 2019

Мне нужно сделать класс Circle с центром, определенным как тип Point, но у меня нет понятия, как установить значения центра, показать их (записать в консоли данные каждого круга) и затем делать с ними все, что мне нравится.

У меня есть что-то вроде этого:

namespace Circle
{
    class Program
    {
        class Point
        {
            private float x, y;

            public Point()
            {
                x = 3.14f;
                y = 3.14f;
            }

            public Point(float a, float b)
            {
                x = a;
                y = b;
            }

            public float X
            {
                get { return x; }
                set { x = value; }
            }

            public float Y
            {
                get { return y; }
                set { y = value; }
            }

            public void Show()
            {
                Console.WriteLine("X = {0}, Y = {1}", x, y);
            }
        }

        class Circle
        {
            private Point center;
            private float radius;

            public Circle(Point s = null, float r = 1)
            {
                if (s == null) center = new Point(0,0);
                radius = r;
            }

            public float Ra
            {
                get { return radius; }
                set { radius = value; }
            }

            public Point Ce
            {
                get { return center; }
                set { center = value; }
            }

        }

            static void Main(string[] args)
        {
            Point p;
            p = new Point();
            p.X = 1;
            p.Y = 1;

            Circle k;
            k = new Circle();
            k.Ce = p;
            k.Ra = 19;
            Console.WriteLine("center = {0}, radius = {1}", k.Ce, k.Ra);

            Console.ReadKey();
        }
    }
}

Сейчас программа компилируется, но показывает странные вещи (Center = Circle.Program + Point).

PS.Мне нужно сохранить private float x, y; в классе Point как private.

1 Ответ

0 голосов
/ 28 марта 2019

Свойство объекта, которое вы пытаетесь вывести, имеет вид:

k.Ce

Это свойство имеет тип Point, и поскольку .ToString () имеетпока не реализовано, результат будет странный , попробуйте внедрить ToString в ваш Point класс, например:

    public override string ToString() {
        return "X =" + x + ", Y = " + y;
    }

Результат теперь будет очень читабельным.

...