类的构造函数(器)constructor

九 类的构造函数 constructor

默认构造函数

每个类在建立和实例化为对象的时候都会首先调用默认的构造函数。

如图:

类中的变量,数字类型的默认赋值为0,字符类型的默认赋值为Null。

要与一般变量的初始值区分开:如下(编译不通过)

构造函数的重载和继承

using System ;
class A
{
    public int i;
    public string s;
    public A()     //修改默认的构造函数
    {
        i=100;
        s="石头";
    }
    public A(int i):this()  //重载构造函数并继承A();
    {
        this.i=i;
    }
    public A(string s):this()//重载构造函数并继承A();
    {
        this.s=s;
    }
    public A(int i,string s):this()//重载构造函数并继承A();
    {
        this.i=i;
        this.s=s;
    }
}
class Test
{
    static void Main()
    {
        A a=new A ();               //调用第一个构造函数
        Console.WriteLine("第一个构造器");
        Console.WriteLine(a.i);
        Console.WriteLine(a.s);
        A a1=new A (1);             //调用第二个构造函数
        Console.WriteLine("第二个构造器");
        Console.WriteLine(a1.i);
        Console.WriteLine(a1.s);
        A a2=new A ("我是");         //调用第三个构造函数
        Console.WriteLine("第三个构造器");
        Console.WriteLine(a2.i);
        Console.WriteLine(a2.s);
        A a3=new A (2,"中国人");      //调用第四个构造函数
        Console.WriteLine("第四个构造器");
        Console.WriteLine(a3.i);
        Console.WriteLine(a3.s);
    }
}

运行结果:

B类继承A类,调用的始终是A的默认的构造函数,注意:当A中只有带参数的构造函数的时候,编译不通过。

静态构造器

如下:静态构造器的特点

时间: 2024-10-23 13:55:07

类的构造函数(器)constructor的相关文章

面向对象:有关类和构造函数的基础知识

1.类和对象对象:具体存在的,可以被描述的实体 属性和行为类:具有共同属性和相同行为的多个对象的抽象 对象:具体的 实体类:抽象的 概念 类是对象的抽象 对象是类得具体实例 2.创建和使用类访问修饰符 [可选修饰符]class 类名{//类成员 //字段 > 数据 //属性 > 对字段的封装 //索引器 > 对集合类型字段的封装 //方法 > 对象的特殊行为 //事件 > 行为 //构造函数 > 初始化 } 字段:访问修饰符 数据类型 变量名; 使用:a.创建对象类名

scala入门教程:scala中的面向对象定义类,构造函数,继承

我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面一行代码就是一个scala类的定义: 首先是关键字class 其后是类名 Point 类名之后的括号中是构造函数的参数列表,这里相当于定义了对象的两个常量,其名称分别为x,y,类型都是Int 上面的类和下面的类是一致的,不过更精简了. class Point (xArg:Int, yArg:Int)

C++:派生类的构造函数和析构函数

4.2 派生类的构造函数和析构函数4.2.1 派生类构造函数和析构函数的执行顺序 通常情况下,当创建派生类对象时,首先执行基类的构造函数,随后再执行派生类的构造函数:当撤销派生类对象时,则先执行派生类的派生类的析构函数,随后再执行基类的析构函数. //例4.5 派生类的构造函数和析构函的执行顺序 #include<iostream> using namespace std; class Base{ //声明基类Base public: Base() { cout<<"Co

什么时候需要在类的构造函数中使用初始化列表

1,如果基类没有default构造函数,则意味着其不能自己初始化.如果其被派生,派生类的构造函数要负责调用基类的构造函数,并传递给它需要的参数.下例中Base 2,如果类成员没有默认构造函数.下例中Elem4 2,如果类的成员变量中含有const成员变量,如果不使用列表,在构造函数中是不能对其赋值的,会导致编译失败.下例中b 3,如果类的成员变量中含有引用,引用必须被初始化.下例中c 4,需要提高效率的时候,如果不使用初始化列表,而放在构造函数体内赋值的方法,则变量先被默认构造函数初始化,然后又

007.类、构造函数

1.类和对象对象:具体存在的,可以被描述的实体 属性和行为类:具有共同属性和相同行为的多个对象的抽象 对象:具体的 实体类:抽象的 概念 类是对象的抽象 对象是类得具体实例 2.创建和使用类访问修饰符 [可选修饰符]class 类名{//类成员 //字段 > 数据 //属性 > 对字段的封装 //索引器 > 对集合类型字段的封装 //方法 > 对象的特殊行为 //事件 > 行为 //构造函数 > 初始化 } 字段:访问修饰符 数据类型 变量名; 使用:a.创建对象类名

反射类的构造函数

1 import java.lang.reflect.Constructor; 2 import java.lang.reflect.InvocationTargetException; 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import org.junit.Test; 7 8 public class Demo { 9 10 /** 11 * 反射类的构造函数,创建类的对象 12 * 13 * @param arg

编程算法 - 不能被继承的类(私有构造函数) 代码(C++)

不能被继承的类(私有构造函数) 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 用C++设计一个不能被继承的类. 可以使用私有构造函数, 并提供静态成员函数, 返回和删除类的实例. 则只能在堆上创建实例, 不能在栈上创建. 代码: /* * main.cpp * * Created on: 2014.7.13 * Author: Spike */ #include <iostream> #include <list> us

C#网络应用编程 类,构造函数,方法,属性和字段

1.类定义形式: public(private) class(类) apple(类名)备 注: public 不限制访问 private 访问限于本类 2.构造函数 定义形式:是一种特殊的方法.public 类名 (参数表){}作 用:主要用来在创建对象时初始化对象,即为对象成员变量赋予初始值,总与new运算符一起使用在穿件对象的语句中. 2.方法定义形式:public void(所定义方法类型) send(方法名)(参数){ }备 注:方法可以是静态的或是非静态的.通过类访问静态方法,通过累的

第十二周阅读程序3:虚基类的构造函数

问题及代码: #include <iostream> using namespace std; class Base { public: Base(char i) { cout<<"Base constructor. --"<<i<<endl; } }; class Derived1:virtual public Base //虚基类 { public: Derived1(char i,char j):Base(i) { cout<