zoukankan      html  css  js  c++  java
  • C#学习笔记(五)中级 构造函数和析构函数 静态类

    第二十讲 构造函数和析构函数

    构造函数: 是一种特殊的成员函数,它主要用于为对象分配存储空
    间,对数据成员进行数据初始化;
    1.构造函数的名字必须与类同名;
    2.构造函数没有返回类型,它可以带参数,也可以不带参数
    3.构造函数的主要作用是完成对类的初始化操作
    4.在创建一个类的新对象(使用new关键字)时,系统会自动调用类
    的构造函数初始化新对象;


    析构函数:是一种特殊的成员函数,当对象销毁时候调用。
    1.当对象达到销毁条件时,析构函数是自动被调用的,不能显式的对
    其进行调用;
    2.一般情况下,不用自己写析构函数。但是有时候必须写,也就是你
    使用了非托管资源,比如:当你使用了API函数时,你使用了非托管
    资源。

    代码:
    namespace First {
    public partial class Form1 : Form {
    public Form1() {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e) {
    //A a = new A();
    // A a=new A(1);

    B b = new B();
    b = null;

    GC.Collect();
    GC.WaitForPendingFinalizers();


    }
    }

    //自定义A类
    //构造函数
    public class A {
    //成员变量
    int num;
    //构造函数
    public A() { MessageBox.Show("调用无参数构造函数!!"); }
    public A(int i) {
    num = i;
    MessageBox.Show("调用有效参数构造函数!!");
    }

    }
    class B {
    ~B() {
    MessageBox.Show("调用的析构函数");
    }

    }
    }


    第二十一讲 静态类 静态方法 静态变量

    静态类 共享数据

    我们使用Math

    MessageBox.Show

    代码: private void Form1_Load(object sender, EventArgs e) {
    /*
    int renShu = BanJi.NumberOfStudents;//获得静态成员变量
    this.textBox1.Text = renShu.ToString();
    //*/
    /*
    BanJi theBanJi1= new BanJi();
    BanJi theBanJi2 = new BanJi();
    theBanJi1.AndBoy();
    theBanJi2.AndBoy();
    int renShu = BanJi.NumberOfStudents;//获得静态成员变量
    this.textBox1.Text = renShu.ToString();
    //*/
    /*
    BanJi theBanJi1= new BanJi();
    BanJi theBanJi2 = new BanJi();
    theBanJi1.AndBoy();
    theBanJi2.AndBoy();
    BanJi.ResetNumberOfStudent();
    int renShu = BanJi.NumberOfStudents;//获得静态成员变量
    this.textBox1.Text = renShu.ToString();
    //*/
    MessageBox.Show("PI的值为:" + Math.PI.ToString());
    MessageBox.Show("sin5的值为:" + Math.Sin(5).ToString());
    }
    }
    public class BanJi {
    //静态成员变量
    public static int NumberOfStudents = 0;
    //静态成员函数
    public static void ResetNumberOfStudent() { NumberOfStudents = 0; }
    //非静态成员函数
    public void AndGirl() { NumberOfStudents++; }

    public void AndBoy() { NumberOfStudents++; }
    }
    static class CompanyInfo {
    public static string GetCompanyName() { return "宇宙香烟"; }
    public static string GetCompanyAddress() { return "北京首都"; }
    }

    }

  • 相关阅读:
    Hdu 1429 胜利大逃亡(续) (bfs+状态压缩)
    Vijos 1456 最小总代价 (状压dp)
    洛谷 P1313 计算系数 (二项式定理)
    洛谷 P1134 阶乘问题
    EINTR错误
    TCP和UDP协议的应用/参数查看
    BAT面经
    高级环境编程要看的
    UDP丢包和无序 问题的解决方法
    tcp/ip
  • 原文地址:https://www.cnblogs.com/cheshui/p/2363567.html
Copyright © 2011-2022 走看看