zoukankan      html  css  js  c++  java
  • 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会自动生成默认构造函数


  • 相关阅读:
    iOS中Zbar二维码扫描的使用
    SOJ 1135. 飞跃原野
    SOJ 1048.Inverso
    SOJ 1219. 新红黑树
    SOJ 1171. The Game of Efil
    SOJ 1180. Pasting Strings
    1215. 脱离地牢
    1317. Sudoku
    SOJ 1119. Factstone Benchmark
    soj 1099. Packing Passengers
  • 原文地址:https://www.cnblogs.com/tao-zi/p/3832575.html
Copyright © 2011-2022 走看看