用途:
1、通过递增静态变量了解已创建此类的多少个对象,与C++构造计数类似
static关键字修饰的变量属于类,不属于对象(实例)
对象的生存期和static关键字
using UnityEngine;using System.Collections;public class Enemy{//静态变量是在类的所有实例之间//共享的变量。public static int enemyCount = 0;public Enemy(){//通过递增静态变量了解//已创建此类的多少个对象。enemyCount++;}}
using UnityEngine;using System.Collections;public class Game{void Start (){Enemy enemy1 = new Enemy();Enemy enemy2 = new Enemy();Enemy enemy3 = new Enemy();//可以使用类名和点运算符//来访问静态变量。int x = Enemy.enemyCount;}}
2、static是共享(公交车)变量,静态变量是在类的所有实例(类对象)之间共享的变量
using UnityEngine;using System.Collections;public class Player : MonoBehaviour{//静态变量是在类的所有实例之间//共享的变量。public static int playerCount = 0;void Start(){//通过递增静态变量了解//已创建此类的多少个对象。playerCount++;}}
3、可以在没有类对象的情况下调用静态方法。请注意,静态方法无法访问非静态成员变量。
using UnityEngine;using System.Collections;public static class Utilities{//可以在没有类对象的情况下调用//静态方法。请注意,静态方法无法访问//非静态成员变量。public static int Add(int num1, int num2){return num1 + num2;}}
4、和面向对象一样,通过类名.对象名访问静态方法
using UnityEngine;using System.Collections;public class UtilitiesExample : MonoBehaviour{void Start(){//可以使用类名和点运算符//来访问静态方法。int x = Utilities.Add (5, 6);}}
对比C++,改用::而不是.
int Point::count = 0;//静态数据成员定义和初始化,使用类名限定
