菜鸟提问c#

来源:百度知道 编辑:UC知道 时间:2024/09/24 02:32:49
using System;
public class Area
{
public readonly double Radius ;
private double x, y;
public double Size;
public static double Sum = 0.0;
public Area()
{
Radius = 1.0; // 通过构造函数对radius赋值
}
}
class Test
{
public static void Main()
{
Area s1 = new Area();
Console.WriteLine("Radius={0}, Size={1},Sum={2}", s1.Radius, s1.Size, Area.Sum);

}
}
为什么需要构造函数,直接给Radius赋值等于1不算了?没有给Size赋值但怎么会出来值?

构造函数只是 在你将这个类实例化 时 能够用指定的值去初始化 这个类实例的成员的值。
如果一个类没有写构造函数,系统会有默认的一个无参构造函数,当你实例化一个类比如
Class1 c = new Class1();
这个Class1()就是这个类的无参构造函数;
一般都要添加自己写的有参构造函数,以便实例化时就给类的成员赋值,比如
某个类
class myClass
{
public double x;
public double y;
pulbic Area(double x, double y)//有参构造函数
{
this.x = x;
this.y = y;
}
}
可以这样实例化它
myClass class1 = new myClass(3.4, 5.56);//调用自己写的有参构造函数

也可以这样实例化它:
myClass class1 = new myClass();//实际上它是调用的系统默认的无参构造函数
class1.x = 3.4;
class1.y = 5.56;

要先将声明的变量实例化,还要将声明的变量实例初始化。
哈哈,我也是菜鸟啊,回答若有错误,欢迎指正!

没人说"没要在构造函数里赋值啊"
直接给Radius赋值等于1 也可以

s1.Size这个是错误的! 没复制 不可能用

构造函数是在实例化对象时开辟内存空间的作用。
不然没法用这个对象。
直接给它赋值也可以的,在你实例化对象时它会创建一个默认的构造函数的。

public double Size;//定义了成员变量,双精密型默认的值是0.0

public double Size;//定义了成员变量,双精密型默认的值是0.0

构造函数是在创建给定类型的对象时执行的类方法。构造函数具有与类相同的名称,它通常初始化新对象的数据成员。
没有给Size赋值会出来值