• 构造方法

    • 构造方法是一个特殊的方法,负责初始化对象
    • 构造方法名必须和类名一致
    • 构造方法没有返回值,但可以有参数,能够重载
    • 构造方法可以不写,系统会自动为类添加一个无参的默认构造
    • 如果将构造方法设置为Private,就不能再使用此构造创建实例
  • 析构
    • 析构方法在对象销毁时调用,用于释放内存
    • 一个类只能有一个析构方法
    • 析构方法没有返回值和参数,不能进行重载
    • 析构方法由系统自动调用,不能手动调用
    • 析构方法没有修饰符
  •   
     using System;
    
     namespace FunctionDemo2
    {
    public class Person
    {
    public string name;
    public int age;
    //构造方法-负责初始化对象
    //1.构造方法的方法名必须和类名一致
    //2.构造方法没有返回值,不需要写void //3.构造方法能够添加参数
    public Person(string name, int age)
    {
    //初始化成员变量
    this.name = name;
    this.age = age;
    Console.WriteLine("构造");
    } //4.构造方法允许重载
    public Person()
    {
    name = "Li";
    age = ; }
    //5.如果没有给类添加构造方法,系统会提供一个默认构造
    //6.如果我们将某个构造方法设为私有类,就不允许再通过这个构造创建对象
    //private Person()
    //{ //}
    //析构方法 - 在对象销毁时调用,用于释放内存
    //1. 每个类只能有一个析构方法
    //2. 析构方法不能有返回值
    //3. 析构方法不能有访问权限修饰符
    //4. 析构函数不能带有参数,更不能重载
    //5. 析构函数由系统自动调用,不能手动调用
    ~Person()
    {
    Console.WriteLine("析构");
    }
    }
    class Program
    {
    static void Main(string[] args)
    {
    //使用new关键字创建对象的时候,就已经调用了构造方法
    Person p = new Person("Li", );
    Console.WriteLine(p.name);
    Console.WriteLine(p.age); Console.WriteLine("主函数结束,程序准备退出!"); //Person p2 = new Person();
    //Console.WriteLine(p2.name);
    //Console.WriteLine(p2.age); }
    }
    }

【学习笔记】C# 构造和析构的更多相关文章

  1. Python学习笔记009_构造与析构

    >>> # 魔法方法>>> >>> # 魔法方法总是被双下划线包围,例如 __init__>>> # 魔法方法是面向对象的Pyt ...

  2. EC++学习笔记(二) 构造/析构/赋值

    条款05:了解c++默默编写并调用了哪些函数 编译器可以暗自为 class 创建default构造函数,copy构造函数,copy assignment操作和析构函数所有这些函数都是 public 并 ...

  3. swift学习笔记之-构造过程

    //构造过程 import UIKit /* 构造过程(Initialization): 1.构造过程是使用类.结构体或枚举类型的一个实例的准备过程.在新实例可用前必须执行这个过程,具体操作包括设置实 ...

  4. jQuery源代码学习笔记:构造jQuery对象

    2.1源代码结构: (function( window, undefined ) { var jQuery = (function() { // 构建jQuery对象 var jQuery = fun ...

  5. Java学习笔记--xml构造与解析之Sax的使用

    汇总:xml的构造与解析 http://www.cnblogs.com/gnivor/p/4624058.html 参考资料:http://www.iteye.com/topic/763895 利用S ...

  6. swift学习笔记(五)构造过程

    构造过程是为了使用某个类.结构体或枚举类型的实例而进行的准备过程.在构造过程中,对每一个属性进行了初始值预设和其它必要的准备和初始化工作. 与OC相比,swift的构造函数.不须要返回值.同一时候,在 ...

  7. tensorflow学习笔记四----------构造线性回归模型

    首先通过构造随机数,模拟数据. import numpy as np import tensorflow as tf import matplotlib.pyplot as plt # 随机生成100 ...

  8. Effective C++学习笔记——构造/析构/拷贝运算

    条款9:决不再构造和析构过程中调用virtual函数,包括通过函数间接调用virtual函数. 应用:想在一个继承体系中,一个derived class被创建时,某个调用(例如生成相应的日志log)会 ...

  9. C++ 类 、构造、 析构、 重载 、单例模式 学习笔记及练习

    一.拷贝构造函数 1.是一种特殊的构造函数,就是用一个已有的对象去构造其同类的副本对象,即对象克隆. class 类名 { 类名(类名& that) { 对类成员挨个赋值 ... } } 练习 ...

  10. C++学习笔记-继承中的构造与析构

    C++存在构造函数与析构函数,继承中也存在构造和析构函数.继承中的构造和析构函数与普通的构造析构有细微差别. 赋值兼容性原则 #include "iostream" using n ...

随机推荐

  1. (转) Java RMI 框架(远程方法调用)

    "原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://haolloyin.blog.51cto.com/1177454/33 ...

  2. Java IO流--练习2

    1)写一个Java程序,输入3个整数,并求出三个数的最大数和最小数 代码: package 第十二章IO流; import java.io.BufferedReader; import java.io ...

  3. 命令查看服务器SN号

    今天工作的时候,为了检查一台服务器的序列号,没必要在跑到机房里了,所以在系统下就可以看机器序列号了.如下: 1.linux取序列号: 命令执行:dmidecode |grep "Serial ...

  4. unity3D:游戏分解之角色移动和相机跟随

          游戏中,我们经常会有这样的操作,点击场景中某个位置,角色自动移动到那个位置,同时角色一直是朝向那个位置移动的,而且相机也会一直跟着角色移动.有些游戏,鼠标滑动屏幕,相机就会围绕角色旋转. ...

  5. 再来写一个随机数解决方案,对Random再来一次封装

    本文提供对Random的封装,简化并扩展了其功能 获取随机数,确保同时调用不会重复 //new Random().Next(5); RandomTask.Next(); 从一个列表中,随机获取其中某个 ...

  6. php练习 租房子

    题目要求 1.封装类 <?php class DBDA { public $fuwuqi="localhost"; //服务器地址 public $yonghuming=&q ...

  7. webpack实用配置

    前面的话 上文介绍了webpack入门,本文将详细介绍webpack实用配置 版本号 以entry.js打包为bundle.js为例,出口的filename可以设置为[id].[name].[hash ...

  8. Webstorm 激活破解

    2017-06-15更新 之前都是使用2017.2.27的方法,版本是2017.1.1,还没提示过期,但是根据评论说这个链接已经失效了,评论也给出了个新地址:http://idea.iteblog.c ...

  9. python网络爬虫之scrapy 工程创建以及原理介绍

    执行scrapy startproject XXXX的命令,就会在对应的目录下生成工程 在pycharm中打开此工程目录:并在Run中选择Edit Configuration 点击+创建一个Pytho ...

  10. Python os模块实例之遍历目录及子目录指定扩展名的文件

    需求:在该目录下有很多子目录(如下图,截图了部分),现要从该目录和所有子目录下找到所有扩展名为.meta的文件,并获取文件中第二行guid的值(': '后面的),然后将所有guid的值输出到另一文件中 ...