static,该如何处理
static
[code=C#][/code]
class Circle
{
public Circle()
{
radius = 0.0;
Numcircles++;
}
public Circle(int initialRadius)
{
radius = initialRadius;
NumCircles++;
}
。。。
private int radius;
public static int initialRadius= 0;
}
static 有点迷糊,此处NumCircles的值是怎么变的?麻烦达人给解释下。越详细越好。谢谢!
------解决方案--------------------
NumCircles定义呢?
------解决方案--------------------
public static 表示全局变量的意思,可以在别的模块引用其值。
------解决方案--------------------
静态NumCircles变量统计你在应用程序中实例化了几次,每实例化一次,就会增1,直到程序关闭,静态变量才会释放。
------解决方案--------------------
苍井空是全世界的,钓鱼岛是中国的
苍井空就类似那个static,属于这个类的,不是任何一个对象所单独拥有
------解决方案--------------------
重载了构造函数,UumCircles的变化跟重载几次没关系,类的实例化只能调用其中的某一个构造函数。
------解决方案--------------------
你只要理解成,如果不是static 变量(方法),那么你在其他类里要调用这个变量,或是方法,则需要实例化那个类才能使用。但是如果是static的话,你就不用实例化那个类了,只需要直接类名.变量(方法)就行了。
------解决方案--------------------
public Circle()
{
radius = 0.0;
Numcircles++;
}
public Circle(int initialRadius)
{
radius = initialRadius;
NumCircles++;
}
这个都是构造函数 每次很定只能调用一个 。所以 NumCircles++;就只能执行一次咯
------解决方案--------------------
比如 var a= new Circle()那么 a。radius=0;
var b=new Circle(10)那么 b。radius=10;
懂了?
------解决方案--------------------
在同一个程序里:
第一次实例化一个对象: var a= new Circle()那么 a.radius=0;NumCircles=1;
第二次实例化一个对象: var b=new Circle(10)那么 b.radius=10;NumCircles=2;
如果NumCircles不是static,那么每次实例化的时候NumCircles都是从0开始加。
------解决方案--------------------
private int radius;
radius = 0.0;这里错了!
------解决方案--------------------
[code=C#][/code]
class Circle
{
public Circle()
{
radius = 0.0;
Numcircles++;
}
public Circle(int initialRadius)
{
radius = initialRadius;
NumCircles++;
}
。。。
private int radius;
public static int initialRadius= 0;
}
static 有点迷糊,此处NumCircles的值是怎么变的?麻烦达人给解释下。越详细越好。谢谢!
------解决方案--------------------
NumCircles定义呢?
------解决方案--------------------
public static 表示全局变量的意思,可以在别的模块引用其值。
------解决方案--------------------
静态NumCircles变量统计你在应用程序中实例化了几次,每实例化一次,就会增1,直到程序关闭,静态变量才会释放。
------解决方案--------------------
苍井空是全世界的,钓鱼岛是中国的
苍井空就类似那个static,属于这个类的,不是任何一个对象所单独拥有
------解决方案--------------------
重载了构造函数,UumCircles的变化跟重载几次没关系,类的实例化只能调用其中的某一个构造函数。
------解决方案--------------------
你只要理解成,如果不是static 变量(方法),那么你在其他类里要调用这个变量,或是方法,则需要实例化那个类才能使用。但是如果是static的话,你就不用实例化那个类了,只需要直接类名.变量(方法)就行了。
------解决方案--------------------
public Circle()
{
radius = 0.0;
Numcircles++;
}
public Circle(int initialRadius)
{
radius = initialRadius;
NumCircles++;
}
这个都是构造函数 每次很定只能调用一个 。所以 NumCircles++;就只能执行一次咯
------解决方案--------------------
比如 var a= new Circle()那么 a。radius=0;
var b=new Circle(10)那么 b。radius=10;
懂了?
------解决方案--------------------
在同一个程序里:
第一次实例化一个对象: var a= new Circle()那么 a.radius=0;NumCircles=1;
第二次实例化一个对象: var b=new Circle(10)那么 b.radius=10;NumCircles=2;
如果NumCircles不是static,那么每次实例化的时候NumCircles都是从0开始加。
------解决方案--------------------
private int radius;
radius = 0.0;这里错了!
------解决方案--------------------
- C# code
using System; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Circle a = new Circle(); MessageBox.Show(Circle.NumCircles.ToString() ); } private void button2_Click(object sender, EventArgs e) { Circle a = new Circle(); MessageBox.Show(Circle.NumCircles.ToString()); } } class Circle { private int num = 0; public static int NumCircles= 0; private int radius; public static int initialRadius= 0; public Circle() { radius = 0; NumCircles++; num++; } public Circle(int initialRadius) { radius = initialRadius; NumCircles++; num++; } } }