C#中的类02:构造对象

1:构造方法的可访问性

构造方法可以是共有的或私有的。

2:默认构造方法

默认构造方法就是不带参数的构造方法。

如果没有为类添加任何构造方法,系统会自动生成一个隐藏的默认构造方法;但如果用户添加了任意一个构造方法,系统就不会自动生成默认的构造方法了。也就是说,如果用户为类添加了自己的定义的构造方法,那么就只能使用用户定义的这些构造方法来生成对象了。

3:构造方法调用构造方法

格式如下:

构造方法名(参数列表) : this(参数列表)

{

方法体

}

举例:

class DerivedClass
{
    public DerivedClass() : this(100)
    {
        Console.WriteLine("Derived Class‘s Default Constructor");
    }

    public DerivedClass(int i)
    {
        Console.WriteLine("Derived Class‘s Constructor with Param: {0}", i);
    }
}

和Java的区别

Java中,构造方法调用另一个构造方法也是使用this(参数)的方法,但Java是将其作为一条语句放在方法体中的,而且这条this语句还必须是方法体的第一条语句。

4:在继承结构中,父类对象的生成

和C++、Java一样,如果有继承结构,那么在生成子类对象时会先生成父类对象。

默认情况下,在执行子类的构造方式(所有的构造方法)时会先自动调用父类的默认构造方法以生产父类对象,所以,如果在子类的构造方法中没有特别说明,而父类又没有默认的构造方法,系统会提示出错。

一般情况下,我们会在子类的构造方法中明确的告诉系统,子类的构造方法要调用父类的哪个构造方法。

格式如下:

子类的构造方法名 : base(参数列表)

{

方法体

}

这样,在执行这个构造方法之前,系统会先调用父类的相应的构造方法。

与Java的区别:Java中使用的关键字是super,而且也是作为语句放置于方法体的开头。

时间: 2024-10-13 09:31:58

C#中的类02:构造对象的相关文章

BX2001: IE 支持使用 window.clipboardData 访问系统剪贴板,Chrome 和 Safari 中存在类似的 Clipboard 对象但尚未实现,Firefox 和 Opera 不支持这类对象

http://www.w3help.org/zh-cn/causes/BX2001 标准参考 无 问题描述 IE 支持使用 window.clipboardData 对象内的一系列方法访问系统剪贴板:Chrome 和 Safari 中存在类似的 Clipboard 对象,且有与 IE 中类似的方法,但其功能尚未实现:Firefox 和 Opera 不支持这类对象. 造成的影响 若作者在需要访问剪贴板时仅仅考虑 IE 浏览器而使用了其专有的 clipboardData 对象,则在其他浏览器中可能导

对python中元类的理解

1. 类也是对象 在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段.在Python中这一点仍然成立: >>> class ObjectCreator(object): - pass - >>> my_object = ObjectCreator() >>> print my_object <__main__.ObjectCreator object at 0x8974f2c> 但是,Python中的类还远不止如此.类同样也是一

C++中的类和对象(二)

一,对象的动态建立和释放 1.什么是对象的动态建立和释放 通常我们创建的对象都是由C++编译器为我们在栈内存中创建的,我们无法对其进行生命周期的管理.所以我们需要动态的去建立该对象,因此我们需要在堆内存中创建对象和释放对象.在C语言中为我们提供了malloc()函数和free()函数来为我们提供在堆内存中分配变量的方式,但是在C++中引入了new和delete关键字来让我们动态的创建和释放变量. 2.new和delete关键字 new关键字是用来在堆内存中创建变量的,格式为:Type * ptr

Java中的类和对象

类和对象 类:类是对对象的抽象,也就是说类是同一类对象的总称,这些对象具有相同的属性和方法. 对象:对象就是一个具体的事物,Java作为面向对象的语言,可以说在Java中万事万物皆对象.对象本身具有自己的属性和方法. 举个生活中的例子:我们生活中常见的人.手机.电脑.车.鸟等等就可以认为是类,然后每一个不同的人就是人这个类的对象,小米6,苹果7就是手机类的不同对象. 知道了什么是类,那么类里面有什么呢? 先来看一下类的定义方法: public class 类名{ 访问修饰符 类型名 属性名 :

[JS]如何理解JS中的类和对象

-------------------------------------------------------------------------------------------- 变量:自由的 => 属性:属于一个对象 函数:自由的 => 方法:属于一个对象 函数: function a() { console.log('a'); } 方法: var arr = [1, 2, 3, 4]; arr.a = function() { console.log('a'); } ========

定义一个只能在栈上构造对象的类

只能在堆上定义的对象可以通过声明构造函数是私有的,然后提供两个静态的方法,一个方法用来获取堆上的对象,一个用来释放堆上的对象.C++中定义一个不能被继承的类中第二种方法就是通过这种方式声明了一个不能被继承的类,但是这个类的对象就只能位于堆中了. 那么如何一定一个只能在栈上构造的对象? 这个就涉及到了C++中new这个操作符,它包含两步: 调用一个全局的operator new函数分配一定的内存空间 调用对象的构造函数 如果不允许一个类在堆上分配内存,但是允许其在栈上分配内存,对比这两种方式可以发

零基础入门学习java第十一节:Java中的类和对象

今天要说的是Java中两个非常重要的概念——类和对象. 什么是类,什么又是对象呢?类是对特定集合的概括描述,比如,人,这个类,外在特征上,有名字,有年龄,能说话,能吃饭等等,这是我们作为人类的相同特征,那么对象呢?我们口口声声说要面向对象编程,可是找了这么久也没找到对象,这还怎么编程(滑稽).此对象非彼对象,Java中的对象是某个具体类的实例,就好比你和我都是人类这个大类的一个实例个体,也就是说,我们都是人类的一个具体对象,我们有各自的名字和年龄. 那为什么要用类和对象这样的概念呢? 这是一个好

【原创】Python 对象创建过程中元类, __new__, __call__, __init__ 的处理

原始type: type是最原始的元类,其__call__方法是在你使用" t_class = type(classname_string, base_classes_tuple, attributes_dict)" 这种语法来使用时, 在__call__方法内使用又会调用type的__new__和__init__方法来创建classname_string的具体类,并初始化类信息.当type(***)调用完成, classname_string代表的类可以用来创建实例了. 元类调用过程

类中属性返回形式(对象,关联数组,索引数组)

class A { public $x, $y; function __construct($x, $y)  { $this->x = $x; $this->y = $y; } function get_value($arr = true)  { if($arr == 'arr')   { // 类中属性以关联数组形式转换返回 return get_object_vars($this); }else if($arr == 'obj')   { //类中属性以对象形式返回 return $thi