• C#类


    类概述

    .Net平台最基本的编程结构是类类型,类是由字段数据和操作这个数据的成员构成的自定义类型;类即是将数据和相关功能的集合封装起来,以模拟现实世界中的实体

    定义类

        class PersonRunning
        {
            //状态
            public string Name;   
            public int runningSpeed;   
    
            //功能
            public void PrintState()
            {
                Console.WriteLine("{0} is going {1} 米/秒", Name, runningSpeed);
            }
            public void SpeedUp(int delta)
            {
                runningSpeed += delta;
            }
    
        }

    在Main()方法中使用Personrunning

           static void Main(string[] args)
            {
                //分配和设置对象
                PersonRunning currPerson = new PersonRunning();
                myCar.Name = "小明";
                myCar.runningSpeed = 2;
                //在for循环中多次调用函数,加速
                for(int i=0;i<=5;i++)
                {
                    myCar.SpeedUp(1);
                    myCar.PrintState();
                }
                
            }
    运行结果:



    使用new关键字分配对象

    对象必须使用new关键字才能被分配到内存中,使用new关键字的本质是在调用构造函数,如果不用new分配就会收到编译错误;有两种写法

    PersonRunning myCar = new PersonRunning();
    或者:

    PersonRunning currPerson;
    myCar = new PersonRunning();
    第二种写法:第一句只是声明了指向尚未被创建的currPerson对象的一个引用而已,在通过new关键字将引用赋给对象之后,这个引用才会指向内存中的有效实例

    构造函数

    构造函数是用构造类对象的初始状态的,即创建对象的时候创建其状态,它是类的特殊方法,构造函数永远不会有返回值,并且它的名字与类名相同

    默认构造函数

    C#类都可提了默认的构造函数,默认的构造函数不接受参数,默认的构造函数确保所有的数据字段都设置了正确的默认值

    现在我们给runningPerson类,添加一个方法,用来输出字段的值

     public void Display()
            {
                Console.WriteLine("Name值:{0}
    runningSpeed值:{1}", Name, runningSpeed);
            }
    当我们实例化一个具体对象后,立即调用这个方法

    //分配和设置对象
                PersonRunning currPerson;
                currPerson = new PersonRunning();
                //调用默认构造函数,输出默认值
                currPerson.Display();

    输出如下:



    这说明,用默认构造函数构建的对象,其数据成员都取得了相关类型的默认值,比如int类默认值0.

    修改默认构造函数

    public PersonRunning()
            {
                Name = "小王";
                runningSpeed = 3;
            }
    这样,所有的PersonRunning类的对象都会取得“小王” 和“ 3 ” 的默认值,而不是数据类型的默认值


    自定义构造函数

    类可以有多个构造函数

            //自定义构造函数
            public PersonRunning(string currName)
            {
                Name = currName;
            }
            public PersonRunning(string currName,int currRunningSpeed)
            {
                Name = currName;
                runningSpeed = currRunningSpeed;
            }

    调用自定义构造函数

    PersonRunning currPerson = new PersonRunning("Jack");
    在这个构造函数中,我们只给Name字段成员赋值了,所以输出如下


    PersonRunning currPerson = new PersonRunning("Jack",3);
    在上面的构造函数中,我们给两个字段成员 都赋值了


    需要注意的,函数的参数和参数的类型,共同决定了一个函数签名

    另外,一旦当我们自定义了构造函数,默认的构造函数就会被自动从类中移除,不再有效,如果此时用默认构造函数来构建对象,VS会给出错误提示


    怎么样才能继续使用默认的构造函数?方法很简单,在代码中显式声明默认构造函数,唯一要注意的是默认构造函数的 成员为空;对于本例 可以这样写:

    public PersonRunning()
            {
    
            }
    还有一个简单的方法生成默认构造函数,那就是在代码中键入 :" ctor " 然后按2次 Tab,VS会自动生成默认构造函数


  • 相关阅读:
    hdu1754 I Hate It
    51nod 1174 1174 区间中最大的数
    51nod1305 Pairwise Sum and Divide
    51nod 1622 集合对[算法马拉松19 C]
    51nod1265 四点共面
    51nod 1244 莫比乌斯函数之和
    51nod 1240 莫比乌斯函数
    51nod 1113 矩阵快速幂
    51nod 1264 线段相交(几何)
    51nod 1412 AVL树的种类(dp)
  • 原文地址:https://www.cnblogs.com/tao-zi/p/3832575.html
Copyright © 2020-2023  润新知