黑马程序员-------静态(成员、类、构造函数)
2013-08-17 19:01
267 查看
------- Windows Phone 7手机开发、.Net培训、期待与您交流!
-------
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();
}
}
}
上面窗体的演示效果如图:
由于静态成员会在整个应用程序退出时,
才释放资源,所以可以在整个应用程序中共享数据。
学习笔记记录如下:
1、什么时候情况下要将一个类标记为静态类
一般情况是当这个类是一个工具类,里面都是方法,为了让用户调用时更方便,
不需要实例化对象,可以将这个类标记为静态类(static),此时这个类只能包含静态成员
不能包含实例成员。比如:Convert,Math,File,Console等
2、什么情况下需要在一个普通类中编写一个静态成员,而这个类不能标记为static?
当这个类需要被实例化的时候。如果这个类中有一个成员是所有对象都共享的数据,
这时可以将该类中的这个成员标记为静态的,但是这个类还是一个实例类。
1>调用静态方法的时候必须通过类名直接来调用,不能通过对象来调用,
也就是说使用静态成员不需要实例化对象。
2>静态成员会在整个应用程序退出时,
才释放资源,所以可以在整个应用程序中共享数据。
3>静态类不能被实例化,并且只能继承自objec类,不能继承自其他类。也不能被其他类继承
4>由于静态成员会在整个程序退出时,才释放资源,
所以尽量避免写静态字段或静态属性,最好只写静态方法。
5>当给一个普通类添加静态字段后,
系统会默认为该类生成一个静态构造函数【静态构造函数不能有访问修饰符、并且也不能带参数】
6>静态类的构造函数,只会在第一次使用静态类之前,执行,并且只会执行一次。
静态构造函数不能有访问修饰符,不能有参数。
静态类不能实现任何的接口,(因为接口中的成员都是实例成员)
------- 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培训、期待与您交流!
-------
相关文章推荐
- 黑马程序员_C#面向对象(值类型和引用类型,构造函数,常量与静态成员,命名空间,索引)
- 黑马程序员-java中构造函数、构造代码块、静态代码块及它们的初始化顺序
- 静态块,静态属性,成员变量,静态方法,构造函数执行顺序
- 黑马程序员——继承,异常,常量与静态成员,索引器
- Java初始化顺序总结 - 静态变量、静态代码块、成员变量、构造函数
- 黑马程序员_005_构造代码块、构造函数和静态代码块
- c++类的静态成员,构造函数
- 静态成员|静态方法|静态构造函数
- 黑马程序员日记(6)--常量和静态成员
- 黑马程序员---构造函数与Static静态
- 静态成员函数访问构造函数
- C#箴言:用静态构造函数初始化静态成员
- 编写设计一个People(人)类。该类的数据成员有年龄(age)、身高(height)、体重(weight)和人数(num),其中人数为静态数据成员,成员函数有构造函数(People)、进食(Eatt
- 为什么内联函数,构造函数,静态成员函数不能为virtual函数?
- Effective C# 使用静态构造函数初始化静态成员
- C#箴言:用静态构造函数初始化静态成员
- 黑马程序员——面向对象(封装、构造函数、静态)
- c#面向对象基础 静态成员、构造函数、命名空间与类库
- 读几个小程序了解c++:Part 01(构造函数、析构函数、指针、静态数据成员)
- 黑马程序员—— 4,二维数组,面向对象,制作帮助文档,静态代码块,构造代码块,构造函数,单例设计模式