• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
激情 希望 斗志昂扬
Records of growth process 专注微软技术
博客园    首页    新随笔    联系   管理    订阅  订阅

C#构造函数总结


 


构造函数要点:

1:构造函数具有与类相同的名称;

2:任何时候,只要创建类或结构,就会调用它的构造函数。

3:构造函数最大作用:构造函数使得程序员可设置默认值、限制实例化(用private)以及编写灵活且便于阅读的代码。

4:如果没有为对象提供构造函数,则默认情况下 C# 将创建一个构造函数,而且变量都为默认值。

构造函数使用实例:

abstract class Shape
{
    
public const double pi = System.Math.PI;
    
protected double x, y;                               //protected修饰的变量可以在类或其派生类中使用

    
public Shape(double x, double y)               //带参数的构造函数。
    {
        
this.x = x;
        
this.y = y;
    }

    
public abstract double Area();              //抽象方法一定要在派生类中重写
}

class Circle : Shape
{
    
public Circle(double radius)
        : 
base(radius, 0)                          //可以用base关键字调用基类的构造函数

                                                        
//this有相同用法,this关键字是调用同一对象的另一个构造函数,可以使用this重写该构造函数
    {
    }
    
public override double Area()            //重写基类的抽象方法

       
return pi * x * x;
    }
}

class Cylinder : Circle
{
    
public Cylinder(double radius, double height)
        : 
base(radius)
    {
        y 
= height;
    }

    
public override double Area()                //重写基类的方法,看出抽象类和抽象方法的好处了吧,定义一个抽
                                                          
//象方法而在派生类重写是有很大好处的
     return (2 * base.Area()) + (2 * pi * x * y);
    }
}

class TestShapes
{
    
static void Main()
    {
        
double radius = 2.5;
        
double height = 3.0;

        Circle ring 
= new Circle(radius);     //调用派生类Circle的构造函数
        Cylinder tube = new Cylinder(radius, height);//调查派生类Cylinder的构造函数

        System.Console.WriteLine(
"Area of the circle = {0:F2}", ring.Area());
        System.Console.WriteLine(
"Area of the cylinder = {0:F2}", tube.Area());
    }
}

 

私有构造函数

定义:私有构造函数是一种特殊的实例构造函数。它通常用在只包含静态成员的类中。如果类具有一个或多个私有构造函数而没有公共构造函数,则不允许其他类(除了嵌套类)创建该类的实例

注意:声明空构造函数可阻止自动生成默认构造函数。注意,如果您不对构造函数使用访问修饰符,则在默认情况下它仍为私有构造函数。但是,通常显式地使用 
private 修饰符来清楚地表明该类不能被实例化。

主要作用:表明该类不能被实例化,用于只包含的静态成员的类中,防止被实例化。

 

静态构造函数

定义:静态构造函数用于初始化任何静态数据,或用于执行仅需执行一次的特定操作。在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数。

特点:

1: 态构造函数既没有访问修饰符,也没有参数。


2:在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。


3:无法直接调用静态构造函数。


4:在程序中,用户无法控制何时执行静态构造函数。


5:静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。


6:静态构造函数在为非托管代码创建包装类时也很有用,此时该构造函数可以调用 LoadLibrary 方法。


 //在此示例中,类 Bus 有一个静态构造函数和一个静态成员 Drive()。当调用 Drive() 时,将调用静态构造函数来初始化类。

public class Bus
{
    
// Static constructor:
    static Bus()
    {
        System.Console.WriteLine(
"The static constructor invoked.");
    }

    
public static void Drive()
    {
        System.Console.WriteLine(
"The Drive method invoked.");
    }
}

class TestBus
{
    
static void Main()
    {
        Bus.Drive();
    }
}

 输出 
The 
static constructor invoked. 

The Drive method invoked. 

 

posted @ 2009-04-08 17:01  贤  阅读(566)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3