C#中的构造函数

在创建某个类时,由于对该对象的状态(数据)不是很明确,因此需要对其进行初始化。比如说我们要在长方形这个类中创建一个对象,或者说新建一个长方形,那么我们首先要确定他的长和宽,假如我们无法确定它的长和宽,那么我们是无法造出一个长方形来的。所以就要使用这个长方形类中一个用来构造该类所有对象的函数——构造函数。由于该函数要在创建一个新对象时使用,因此它不肯能存在于对象之后,那么我们就必须在类中对它进行声明和定义。

如果有一个名称是MyClass的类,其定义的构造函数框架如下:

[csharp] view plain copy

  1. <span style="font-family:Microsoft YaHei;font-size:18px;">public class MyClass
  2. {
  3. public MyClass()
  4. {
  5. }
  6. }</span>

下面就拿计算长方形的面积来举例吧:

首先,声明一个rectangle类:

[csharp] view plain copy

  1. <span style="font-family:Microsoft YaHei;font-size:18px;">class rectangle
  2. {
  3. public rectangle(int w, int h)  //构造函数的声明
  4. {
  5. width = w;
  6. high = h;
  7. }
  8. public int area()
  9. {
  10. return width * high;
  11. }
  12. private int width;
  13. private int high;
  14. }</span>

其次,将类实例化为A,完成初始化。

[csharp] view plain copy

  1. <span style="font-family:Microsoft YaHei;font-size:18px;"> Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. rectangle A = new rectangle(3,4);    //创建对象A时执行了初始化
  6. Console.WriteLine("长方形的面积为{0}",A.area());
  7. }
  8. }</span>

最后,要注意的是, 构造函数没有返回值,而且一个类可以有多个构造函数。使用有参数的构造函数时,需要自己写一个空参数的构造函数。

时间: 2024-10-22 12:31:59

C#中的构造函数的相关文章

Java中有关构造函数的一道笔试题解析

Java中有关构造函数的一道笔试题解析 1.具体题目如下 下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 2.解析说明 (1)class中的构造函数是可以省略的 /** * @Title:User.java * @Package:com.you.user.model * @Descrip

C++中拷贝构造函数和赋值函数被调用的时机

一.拷贝构造函数被调用的时机: 1. 当用类的一个对象去初始化该类的另一个对象(或引用)时系统自动调用拷贝构造函数实现拷贝赋值. 2. 若函数的形参为类对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数. 3. 当函数的返回值是类对象时,系统自动调用拷贝构造函数. 二.赋值函数被调用的时机: 当用一个对象赋值给另一个对象时 注意一.二中初始化和赋值的区别 C++中拷贝构造函数和赋值函数被调用的时机,布布扣,bubuko.com

谈谈java中的构造函数

本篇博文主要是为新手.对java语言感兴趣的人和那些没有系统学习过java基础知识的人进行一个总结,在文章中对构造函数进行了较为详细的说明和讨论,也包含了我个人对于java面向对象中构造函数的一些看法.希望走在java学习道路上的同行者可以有一个较为清晰的认知和理解.当然仅为个人观点,水平有限,不足之处,还请大家多多指出,互相交流学习. 1.构造函数的概念 很多java新手谈到构造函数就会犯晕,我们先来看看什么是构造函数. 首先,构造函数是函数的一种特殊形式,特殊在哪里?构造函数中不需要定义返回

子父类中的构造函数

继承: 特点: 1,提高了代码的复用性. 2,让类与类之间产生关系,是多态性的前提. Java中的继承. 1,java只支持单继承,不支持多继承.为啥呢?答案:因为继承了多个父类如果有相同方法时, 子类对象不确定运行哪一个. 2,Java还支持多层继承.A-->B--->C 原来可以形成继承体系. 想要使用体系功能,"查阅父类功能,建立子类对象调用功能." 注解:父类的由来其实是由事物中的共性内容不断向上抽取而来的. 所以父类中定义的是该体系中的最基本,最共性功能. 继承出

Java中的构造函数和重载

一.Java中的构造函数 构造函数是对象被创建时初始化对象的成员方法,它具有和它所在的类完全一样的名字.构造函数只能有入口参数,没有返回类型,因为一个类的构造方法的返回类就是类本身.构造函数定义后,创建对象时就会自动调用它,对新创建的对象分配内存空间和初始化.在 Java 中,构造函数也可以重载,当创建一个对象时, JVM 会自动根据当前对方法的调用形式在类的定义中匹配形式符合的构造方法,匹配成功后执行该构造方法. eg: public Class Dog { private int age:

《解析C#类中的构造函数》

一.  C#中的构造函数概述: C#中类包含数据成员和函数成员.函数成员提供了操作类中数据的某些功能,包括方法.属性.构造器和终结器.运算符和索引器. 1.   构造函数设计的定义: 构造器是允许将类型的实例初始化为良好状态的一种特殊方法. 2.    构造函数设计的作用: c#中创建一个引用类型的实例时,首先为实例的数据字段分配内存,然后初始化对象的附加字段(类型对象指针和同步块索引),最后调用类型的实例构造器来设置对象的初始化状态. 3.    对类没有定义任何共有的或受保护的构造器,导致该

20150214&mdash;winform中使用构造函数传值

构造函数,在函数初始化时就会执行的函数方法,在创建一个类之后,系统会自动在此类中生成一个与类名相同的函数,其中只包含一句代码: InitializeComponent(); 新建一个名字相同的函数,然后使用一个参数,已构成此函数的另一个重载方法,这个参数可以是任何类型,string,int,甚至是自己创建的类,例如以下代码中新建的构造函数的参数就是以自己创建的类为参数,这里的传值主要用来传用户的登陆路信息. namespace dati_150128 { public partial class

Java:继承关系中的构造函数(转)

1.构造函数不会被继承到子类. 2.子类的构造函数中的第一行(除注释外)必须是父类对象(super)的构造函数. 如果没有显示指定,则有两种情况: 1)如果父类有默认构造器(不带参数的构造器才是默认构造器),则会隐式地调用它(super()),此时不会出错: 2)如果父类没有默认构造器,则会出错. class Game { Game() { System.out.println("Game default constructor"); } Game(int i) { System.ou

关于swift中的构造函数

son' has no initializers -> 'Person' 类没有实例化器s 原因:如果一个类中定义了必选属性,必须通过构造函数为这些必选属性分配空间并且设置初始值 重写 父类的构造函数 /// `重写`父类的构造函数 override init() { } 提示错误 Property 'self.name' not initialized at implicitly generated super.init call -> 属性 'self.name' 没有在隐式生成的 sup

C#基础(二)——C#中的构造函数

构造函数主要是用来创建对象时为对象赋初值来初始化对象.总与new运算符一起使用在创建对象的语句中 .A a=new A(); 构造函数具有和类一样的名称:但它是一个函数具有函数的所有特性,同一个类里面可以有多个参数不同的构造函数,也就是函数的多态. 构造函数是在实例化类时最先执行的方法,通过这个特性可以给对象赋初值. 构造函数没有返回值,也不能用void修饰,只有访问修饰符. 每个类中都会一个构造函数,如果用户定义的类中没有显式的定义任何构造函数,编译器就会自动为该类型生成默认构造函数,类里面没