【学习笔记】C# 构造和析构
- 构造方法
- 构造方法是一个特殊的方法,负责初始化对象
- 构造方法名必须和类名一致
- 构造方法没有返回值,但可以有参数,能够重载
- 构造方法可以不写,系统会自动为类添加一个无参的默认构造
- 如果将构造方法设置为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# 构造和析构的更多相关文章
- Python学习笔记009_构造与析构
>>> # 魔法方法>>> >>> # 魔法方法总是被双下划线包围,例如 __init__>>> # 魔法方法是面向对象的Pyt ...
- EC++学习笔记(二) 构造/析构/赋值
条款05:了解c++默默编写并调用了哪些函数 编译器可以暗自为 class 创建default构造函数,copy构造函数,copy assignment操作和析构函数所有这些函数都是 public 并 ...
- swift学习笔记之-构造过程
//构造过程 import UIKit /* 构造过程(Initialization): 1.构造过程是使用类.结构体或枚举类型的一个实例的准备过程.在新实例可用前必须执行这个过程,具体操作包括设置实 ...
- jQuery源代码学习笔记:构造jQuery对象
2.1源代码结构: (function( window, undefined ) { var jQuery = (function() { // 构建jQuery对象 var jQuery = fun ...
- Java学习笔记--xml构造与解析之Sax的使用
汇总:xml的构造与解析 http://www.cnblogs.com/gnivor/p/4624058.html 参考资料:http://www.iteye.com/topic/763895 利用S ...
- swift学习笔记(五)构造过程
构造过程是为了使用某个类.结构体或枚举类型的实例而进行的准备过程.在构造过程中,对每一个属性进行了初始值预设和其它必要的准备和初始化工作. 与OC相比,swift的构造函数.不须要返回值.同一时候,在 ...
- tensorflow学习笔记四----------构造线性回归模型
首先通过构造随机数,模拟数据. import numpy as np import tensorflow as tf import matplotlib.pyplot as plt # 随机生成100 ...
- Effective C++学习笔记——构造/析构/拷贝运算
条款9:决不再构造和析构过程中调用virtual函数,包括通过函数间接调用virtual函数. 应用:想在一个继承体系中,一个derived class被创建时,某个调用(例如生成相应的日志log)会 ...
- C++ 类 、构造、 析构、 重载 、单例模式 学习笔记及练习
一.拷贝构造函数 1.是一种特殊的构造函数,就是用一个已有的对象去构造其同类的副本对象,即对象克隆. class 类名 { 类名(类名& that) { 对类成员挨个赋值 ... } } 练习 ...
- C++学习笔记-继承中的构造与析构
C++存在构造函数与析构函数,继承中也存在构造和析构函数.继承中的构造和析构函数与普通的构造析构有细微差别. 赋值兼容性原则 #include "iostream" using n ...
随机推荐
- 解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG
解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-6 ...
- 与我们息息相关的internet服务(1)---域名服务
在起步一个公司,从组建的技术上,可能要准备很多东西,其中一个就是我们熟悉的域名-----域名可以用在邮箱中.网站中等等 域名,听起来很怪的一个词(他类似于电话本的作用),但理解起来很简单,想法也很简单 ...
- backbone中get和fetch的区别
我也是刚开始接触backbone.js对于里面的很多东西都看过,但是具体在使用起来还是有很多问题,其中一个就是get和fetch的区别,这个让我很纠结,都是获取模型的数据,干嘛要有两个呢?最近好像弄明 ...
- SQL Server使用导入导出向导导入超过4000个字符的字段的数据
在使用SQL Server导入导出向导导入数据的时候,我们经常会碰到某个单元格的数据超长而被截断报错的情况.本文针对这种场景给出相应的解决方案. 环境描述:SQL Server 2012,文件源: ...
- 渗透测试工具Nmap从初级到高级
Nmap是一款网络扫描和主机检测的非常有用的工具. Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它可以适用于winodws,linux,mac等操作系统.Nmap ...
- C#简单构架之EF进行读写分离+多数据库(Mysql/SqlService)
最近因为项目需要,研究了下EF的读写分离,所以做了一个demo进行测试,下面是项目的结构 表现层view 主要提供Web.WebApi等表现层的解决方案 公共层public 主要提供项目公共类库,数据 ...
- ThinkPHP 前台视图实现类似于Yii的自动验证
ThinkPHP model类其实自带这个功能 可以写一个基础类继承Model 模型层代码: <?php namespace Manager\Model; use Think\Model; cl ...
- AngularJS高级程序设计读书笔记 -- 大纲篇
零. 初衷 现在 AngularJS 4 已经发布了, 楼主还停留在 1.x 的阶段, 深感自卑. 学习 AngularJS 的初衷是因为, 去年楼主开始尝试使用 Flask 开发自动化程序, 需要用 ...
- VisualSVN 5.1.7破译License Key
前面手敲一些简要的软件说明:visualSVN server大家都不陌生,服务器上的版本控制系统,一般配套Tortoisesvn(小乌龟)使用.本次介绍的这个visualsvn属于VisualStud ...
- arcgis api for js入门开发系列十叠加SHP图层
上一篇实现了demo的热力图,本篇新增叠加SHP图层,截图如下: 叠加SHP图层效果实现的思路如下:利用封装的js文件,直接读取shp图层,然后转换geojson,最后通过arcgis api来解析转 ...