代码之家  ›  专栏  ›  技术社区  ›  jjmart92

在C中设置参数#

  •  0
  • jjmart92  · 技术社区  · 6 年前

    我一直在为《初学者C》课做作业。我已经到了不知道下一步该怎么办的地步。这就是问题所在,它涉及参数/参数。。。

    定义“area”属性计算的输出,以便用户可以通过设置参数/参数名为“radius”(在构造函数中)来初始化“Circle”类的实例,然后调用名为“ShowArea”的方法,使用以下公式显示新圆实例的面积:(其中r=radius,a=area,ÏÌ=pi)

    这就是我目前的情况:

     namespace IndividualAssignment2
     {
         public class Shape
         {
             public virtual int area { get; set; }
         }
    
         public class Circle : Shape
         {
             double radius;
             public override int area { get; set; }
             double ShowArea = 3.14 * Math.Pow(radius,2);
         }
    
         public sealed class Square : Shape
         {
             int height;
         }
     }
    

    我将如何在代码中实现这一点?我的双显示区不正确,因为半径有下划线。我认为理解这个问题将有助于解决这个问题。非常感谢。

    3 回复  |  直到 6 年前
        1
  •  1
  •   Arun Balasubramaniam    6 年前

    如果我理解正确的话,ShowArea是一种方法,而不是一个字段。这意味着您的Circle类应该是:

    public class Circle : Shape
    {
        double _radius;
    
        // Constructor for the Circle that has radius as a parameter
        public Circle(double radius)
        {
            _radius = radius;
        } 
    
        // Method that returns the area of the circle using radius value from constructor
        public double ShowArea() 
        {
            return Math.Pi * Math.Pow(_radius, 2.0);
        }
    }
    
        2
  •  0
  •   Adem Catamak    6 年前

    你的课堂设计必须经过审查。

    public abstract class Shape
    {
        public abstract double Area { get; }
    }
    
    public class Circle : Shape
    {
        public Circle(double radius)
        {
            Radius = radius;
        }
    
        private double Radius { get; set; }
    
    
        public override double Area => 3.14 * Math.Pow(Radius, 2);
    }
    
    public class Square : Shape
    {
        public Square(double edge)
        {
            Edge = edge;
        }
    
        private double Edge { get; set; }
    
    
        public override double Area => Math.Pow(Edge, 2);
    }
    
        3
  •  0
  •   junkangli    6 年前

    您的方法声明 ShowArea 不正确。您正在声明 field 相反 你应该读更多关于 methods 。您还负责声明 constructor 使用参数设置 radius ,我在您的代码中找不到它。