Ответы пользователя по тегу ООП
  • Как вызвать метод подкласса в родительском?

    Ваша ошибка - пытаться сделать что-то не по шаблону: не придумывайте задачу, лучше хорошо изучите и проработайте готовые примеры из документации или книги и запомните их - это вам поможет, но на это уйдет много времени. В данный момент вы тратите время впустую, т.к. ваш подход некорректен.
    Ответ написан
    Комментировать
  • Наследование и(или) уменьшение объема кода - C#?

    Важнее научится правильно именовать переменные и объекты: Krug - Disk, Ploshad - Area. Это важно.

    На примере класса Krug (остальные фигуры по аналогии).
    -Создается полиморфный тип. B данном примере преимущество не заметно, но в реальных проектах может быть много общих методов, которые могут в точности повторяться в классах наследниках.
    -public const double Pi = Math.PI; - выкидывается, т.к. создает избыточность
    -вместо S = Pi * (r * r); нужно использовать готовый метод Math.Pow
    -лучше использовать инициализацию присваиванием double area = Math.PI * Math.Pow(Radius, 2); где это возможно
    -методы должны возвращать значение без Console.WriteLine("Shape");, таким образом данный пример можно использовать в приложении WindowsForms, например
    -можно добавить конструктор с параметром для инициализации св-ва Radius

    class Shape
    {
        //общие для фигур методы
        public virtual string GetShapeName()
        {
            return "Shape";
        }
    }
    
    class Disk : Shape
    {
        public double Radius { get; set; }
        
        public double Area()
        {
            double area = Math.PI * Math.Pow(Radius, 2);
            return area;
        }
     
        public double Length()
        {
            double length = 2 * Math.PI * Radius;
            return length;
        }
    
        public override string GetShapeName()
        {
            return "Disk";
        }
    }
    Ответ написан
    Комментировать
  • Какую книжку выбрать для ознакомления с ООП и алгоритмами??

    По алгоритмам - "алгоритмы просто как 2х2"
    По ООП , если чисто для ознакомления - https://ru.wikibooks.org/wiki/%D0%9E%D0%B1%D1%8A%D...

    Но вообще для настоящего понимания ООП книжек мало нужна практика и еще раз практика, иначе никак.
    Ответ написан
    2 комментария