您的位置:首页 > 职场人生

黑马程序员-------静态(成员、类、构造函数)

2013-08-17 19:01 267 查看
------- Windows Phone 7手机开发.Net培训、期待与您交流!
-------
namespace 静态成员静态类
{
class Program
{
static void Main(string[] args)
{
Myclass1 mc = new Myclass1();
mc.M1();
//1、调用静态方法的时候必须通过类名直接调用,不能通过对象来调用
//也就是说使用静态成员不需要实例化对象

//2、静态成员会在整个应用程序退出时,才会释放资源。
//所以可以在整个程序中共享数据
Myclass1.M2();
Console.ReadKey();
}
}

class Myclass1
{
public void M1()
{
Console.WriteLine("M1");
}

public static void M2()
{
Console.WriteLine("静态成员方法");
}
}
}


 
namespace 静态构造函数
{
    public static class Myclass//静态类
    {
        static Myclass()  //静态构造函数
        {
            Console.WriteLine("静态构造函数");
        }
        public static int age;
        public static string name;
        public static void Say()
        {
            Console.WriteLine("Hi");
        }
    }
}namespace 静态构造函数
{
class Program
{
//静态类的构造函数,只会在使用静态类之前,执行并只会执行一次
//静态构造函数不能有访问修饰符,不能有参数
static void Main(string[] args)
{
//Myclass.age = 18;
//Myclass.Say();

T1();
T2();
T3();
Console.WriteLine();
Console.ReadKey();
}
//静态构造函数不能有访问修饰符,不能有参数
static void T1()
{
Myclass.age = 10;
}

static void T2()
{
Myclass.name = "aaa";
}

static void T3()
{
Myclass.Say();
}
}
}


 

namespace 静态成员
{
    class Class1
    {
        public static string  msg;  //定义一个静态成员变量 msg
       
    }
}
namespace 静态成员
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Class1.msg = msg.Text.Trim();
this.Text = msg.Text;
}

private void button2_Click(object sender, EventArgs e)
{
Form2 fm = new Form2();
fm.Show();
}
}
}

public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form3 fm = new Form3();

fm.Show();
}

private void Form2_Load(object sender, EventArgs e)
{
this.Text = Class1.msg;
}
}

上面窗体的演示效果如图:



 
 
由于静态成员会在整个应用程序退出时,

才释放资源,所以可以在整个应用程序中共享数据。

 
 
 
学习笔记记录如下:
1、什么时候情况下要将一个类标记为静态类

一般情况是当这个类是一个工具类,里面都是方法,为了让用户调用时更方便,

不需要实例化对象,可以将这个类标记为静态类(static),此时这个类只能包含静态成员

不能包含实例成员。比如:Convert,Math,File,Console等

2、什么情况下需要在一个普通类中编写一个静态成员,而这个类不能标记为static?

当这个类需要被实例化的时候。如果这个类中有一个成员是所有对象都共享的数据,

这时可以将该类中的这个成员标记为静态的,但是这个类还是一个实例类。

1>调用静态方法的时候必须通过类名直接来调用,不能通过对象来调用,

也就是说使用静态成员不需要实例化对象。

 

2>静态成员会在整个应用程序退出时,

才释放资源,所以可以在整个应用程序中共享数据。

3>静态类不能被实例化,并且只能继承自objec类,不能继承自其他类。也不能被其他类继承

4>由于静态成员会在整个程序退出时,才释放资源,

所以尽量避免写静态字段或静态属性,最好只写静态方法。

5>当给一个普通类添加静态字段后,

系统会默认为该类生成一个静态构造函数【静态构造函数不能有访问修饰符、并且也不能带参数】

6>静态类的构造函数,只会在第一次使用静态类之前,执行,并且只会执行一次。

静态构造函数不能有访问修饰符,不能有参数。

静态类不能实现任何的接口,(因为接口中的成员都是实例成员)

 

 
------- Windows Phone 7手机开发.Net培训、期待与您交流!
-------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐