zoukankan      html  css  js  c++  java
  • 静态成员和非静态成员的区别?

    静态变量使用 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

  • 相关阅读:
    数据库主键生成策略
    弹出窗返回数据实体对象或对象集
    我的家乡话,模糊和清晰的记忆......
    曾经年少
    获取父页面URL的参数对应值及左对齐字符串
    .Net编程规范
    DBdifference
    GridView翻页时保持CheckBox选择状态
    .CS中的javascript
    (转)程序员职业规划
  • 原文地址:https://www.cnblogs.com/qfb620/p/1771548.html
Copyright © 2011-2022 走看看