站点图标 久久日记本

静态方法和非静态方法的区别

1、静态的不用实例化,直接使用;

2、一般公用的,经常用到的方法用静态方法,不用每次都实例化分配内存空间;

3、
静态变量 使用static 修饰符进行声明,在类被实例化时创建,通过类进行访问
不带有static 修饰符声明的变量非静态变量,在对象被实例化时创建,通过对象进行访问

一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值

静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等

示例:

using   System;
using   System.Collections.Generic;
using   System.Text;

namespace Example01
{
    class Program
    {
        class Class1
        {
            public static String staticStr = "Class ";
            public String notstaticStr = "Obj ";
        }

        static void Main(string[] args)
        {
            //静态变量通过类进行访问,该类所有实例的同一静态变量都是同一个值
            Console.WriteLine("Class1 's   staticStr:   {0} ", Class1.staticStr);
            Class1 tmpObj1 = new Class1();
            tmpObj1.notstaticStr = "tmpObj1 ";
            Class1 tmpObj2 = new Class1();
            tmpObj2.notstaticStr = "tmpObj2 ";
            //非静态变量通过对象进行访问,不同对象的同一非静态变量可以有不同的值
            Console.WriteLine("tmpObj1 's   notstaticStr:   {0} ", tmpObj1.notstaticStr);
            Console.WriteLine("tmpObj2 's   notstaticStr:   {0} ", tmpObj2.notstaticStr);
            Console.ReadLine();
        }
    }
}

结果:

Class1 's   staticStr:   Class
tmpObj1 's   notstaticStr:   tmpObj1
tmpObj2 's   notstaticStr:   tmpObj2
退出移动版