天天看點

藍鷗Unity開發基礎——靜态類

藍鷗Unity開發基礎——靜态類

一、靜态類

靜态類需要靜态修飾符——關鍵詞static

用static修飾的成員時靜态成員

靜态成員隻能由類來調用

用static修飾的類是靜态類

靜态類不能執行個體化,隻能包含靜态成員和const常量

藍鷗Unity開發基礎——靜态類

關于靜态類的具體使用方式,我們用代碼進行示範:

using System;

namespace Lesson_17

{

    //靜态 static

    //靜态的字段,屬性或者方法,隻能由類調用,不能夠由執行個體調用

    //使用類建立對象的過程叫做執行個體化,對象也可以稱為執行個體

    //靜态類

    //靜态類中,隻能包含靜态的成員(字段,屬性,方法),const常量

    public static  class A{

        public static  int i;

//        public  A(){

//        }

        //靜态方法

        public static  void Test(){

            Console.WriteLine ("Test");

        }

    }

    class MainClass

    {

        public static void Main (string[] args)

        {

            //直接使用類名進行調用靜态成員

//            A.i = 10;

//            Console.WriteLine (A.i);

//            A.Test ();

            //未加靜态修飾符調用方式

//            A a = new A ();

//            a.i = 10;

//            Console.WriteLine (a.i);

            //在記憶體中一共有五個區域

            //1、堆區——需要程式員手動開辟并管理記憶體

            //2、棧區——有系統自動完成記憶體管理

            //3、靜态區(全局區)——我們要講解的

            //4、常量區——用于存放常量

            //5、代碼區——存在程式運作所需要的代碼

        }

    }

}

構造方法也可以設定為靜态

靜态構造不能有參數和通路修飾符

不管是不是靜态類,都可以有靜态構造

靜态構造會在第一次執行個體化或調用靜态成員時調用

藍鷗Unity開發基礎——靜态類

關于靜态構造方法具體使用方式,我們用代碼進行示範:

using System;

namespace Lesson_17

{

    //靜态 static

    //靜态的字段,屬性或者方法,隻能由類調用,不能夠由執行個體調用

    //使用類建立對象的過程叫做執行個體化,對象也可以稱為執行個體

    //靜态類

    //靜态類中,隻能包含靜态的成員(字段,屬性,方法),const常量

    public static  class A{

        public static  int i;

//        public  A(){

//        }

        //1、靜态構造方法前不允許添加通路修飾符

        //2、靜态構造方法可以存在于靜态類中,也可以在普通類中

        //靜态構造方法

        //靜态構造方法會在首次通路類的靜态成員時調用

        static A(){

            Console.WriteLine ("A的靜态構造方法");

        }

        //靜态方法

        public static  void Test(){

            Console.WriteLine ("Test");

        }

    }

    public class B{

        public static int age;

        //普通類中的靜态構造方法

        //靜态構造會在建立對象并初始化之前調用

        static B(){

            Console.WriteLine ("B的靜态構造方法");

        }

    }

    class MainClass

    {

        public static void Main (string[] args)

        {

            //直接使用類名進行調用靜态成員

            A.i = 10;

            Console.WriteLine (A.i);

            A.Test ();

            B b=new B();

//            B.age = 10;

            //未加靜态修飾符調用方式

//            A a = new A ();

//            a.i = 10;

//            Console.WriteLine (a.i);

            //在記憶體中一共有五個區域

            //1、堆區——需要程式員手動開辟并管理記憶體

            //2、棧區——有系統自動完成記憶體管理

            //3、靜态區(全局區)——我們要講解的

            //4、常量區——用于存放常量

            //5、代碼區——存在程式運作所需要的代碼

        }

    }

}