Задать вопрос
shatov
@shatov
1C

Как решить данную задачу корректно?

Решил задачу. Всё работает. Но преподаватель указал некоторые ошибки. Вот условие задачи:

Задание 1. Написать класс Round, задающий круг с указанными координатами центра, радиусом, а также свойствами, позволяющими узнать длину описанной окружности и площадь круга. Обеспечить нахождение объекта в заведомо корректном состоянии. Написать программу, демонстрирующую использование данного круга.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            var circle = new Circle();
            circle.Radius = 10;
            Console.WriteLine("Координаты x = {0} , y = {1}  " , circle.X , circle.Y);
            Console.WriteLine("Площадь круга = {0}" , circle.GetArea);
            Console.WriteLine("Длина  = {0}" , circle.Length);
        }

        public class Circle 
        {
            private double x, y , r;
            public double Radius
            {
                get 
                {
                    return r;
                }

                set 
                {
                    x = y = 0;
                    if (value <= 0) { throw new ArgumentException (" Wrong! ") ;}
                    r = value;
                }
            }

            public double GetArea
            {
                get
                {
                    return Math.PI * r * r;
                }
            }

            public double Length
            {
                get
                {
                    return 2 * Math.PI * r;
                }
            }

            public double X
            {
                get
                {
                    return x;
                }
            }

            public double Y
            {
                get
                {
                    return y;
                }
            }
        }
    }
}
  • Вопрос задан
  • 4212 просмотров
Подписаться 2 Оценить Комментировать
Ответ пользователя brutal_lobster К ответам на вопрос (3)
@brutal_lobster
Ошибки такие же как и в других задачах - почитайте книжку по ООП - особенно в части инкапсуляции.

У окружности только два параметра - координаты центра и радиус. Их вы должны передавать при создании объекта. После создания их нельзя изменять напрямую.
Если есть необходимость, то можно создать два доп. метода - move() и enlarge()/shrink()/...

Ну и форматирование, сериализация..
Ответ написан