namespace CircleDome
{
class Circle
{
private int radius;
public Circle()//不点任何参数的构造方法称为默认构造方法,含义是:该方法没有定义,系统会默认自动添加该方法
{ //如果类中已经定义了构造方法,不论事默认还是带参数的构造方法,系统都不会再自动提供默认构造方法
radius = 10;
}
public Circle(int radius)//
{
Console.WriteLine("Circle的构造方法被调用");
this.radius = radius;
}
public Circle(double radius)
{
Convert.ToDouble(this.radius) = radius;//这里怎转换才不会报错 } public double Aeea()
{
return Math.PI * radius * radius;
}
}
}
下面是我在main方法里写的
namespace CircleDome
{
class Program
{
static void Main(string[] args)
{
Circle c;
Console.WriteLine("Circle被实例化之前");
c = new Circle(10);//构造方法被调用
Console.WriteLine("Circle实例化之后");
Circle c1 = new Circle(11.5);
double t = c1.Aeea();
Console.WriteLine(t);
double b = c.Aeea();
Console.WriteLine(b); }
}
}
{
class Circle
{
private int radius;
public Circle()//不点任何参数的构造方法称为默认构造方法,含义是:该方法没有定义,系统会默认自动添加该方法
{ //如果类中已经定义了构造方法,不论事默认还是带参数的构造方法,系统都不会再自动提供默认构造方法
radius = 10;
}
public Circle(int radius)//
{
Console.WriteLine("Circle的构造方法被调用");
this.radius = radius;
}
public Circle(double radius)
{
Convert.ToDouble(this.radius) = radius;//这里怎转换才不会报错 } public double Aeea()
{
return Math.PI * radius * radius;
}
}
}
下面是我在main方法里写的
namespace CircleDome
{
class Program
{
static void Main(string[] args)
{
Circle c;
Console.WriteLine("Circle被实例化之前");
c = new Circle(10);//构造方法被调用
Console.WriteLine("Circle实例化之后");
Circle c1 = new Circle(11.5);
double t = c1.Aeea();
Console.WriteLine(t);
double b = c.Aeea();
Console.WriteLine(b); }
}
}
=>
radius = Convert.ToDouble(this.radius);
如果要进行四舍五入:this.radius = (int)Math.Round(radius);
1、Convert.ToDouble(this.radius) = radius;
有这样的赋值语句,明显顺序写颠倒!
2、radius
你的私有成员和构造函数参数都用完全一样的名称,
你不怕把自己搞糊涂,也会把编译器搞糊涂!
public Circle(int r)//
{
Console.WriteLine("Circle的构造方法被调用");
this.radius = r;
}
public Circle(double r)
{
this.radius = r;Convert.ToDouble(r) ;
}
这是给变量赋值:radius = Convert.ToDouble(this.radius);
Convert.ToDouble(this.radius) 这个地方写变量才对啊
{
Convert.ToDouble(this.radius) = radius;//这里怎转换才不会报错
}this.radius是本类的一个私有成员,并没有进行赋值操作。你使用Convert类对其进行操作是错误的。