C#静态字段的两个用处】的更多相关文章

静态字段的2个常用方法 (1)记录已实例化的对象的个数 (2)存储必须在所有实例化之间共享的值 (1)记录已实例化的对象的个数 现在某个培训机构啊,要开设一个学理发的班,计划招5人,只要人数够5人就开班. 但是这个学生是一个一个来的,不可能一下子就把5个人招满了. 那么招第一个人,学生总数就是1,再招两个人,那学生总数就是3了,也就是说学生总人数是变化的,这个学生总数就需要声明为静态字段,因为静态字段实例化只会在内存里使用同一块区域(只不过存储的值变化罢了).如果声明为实例成员,那就麻烦了,需要…
回顾 回顾:字符串.列表.字典的修改关于内存的情况 一.字符串 str1 = 'luotianshuai' str2 = str1 print id(str1) print id(str2) print '===========================' str1 = 'shuaige' print id(str1) print id(str2) #输出结果: ''' 38807904 38807904 =========================== 39795488 38807…
序言 以前,总是被提醒,在编程过程中尽量少用静态变量,数据丢失什么的,今天有空,禁不住对静态变量的强烈好奇,跟我一起了解下静态家族的内幕吧. 静态类 定义 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量.在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类:其次,它防止在类的内部声明任何实例字段或方法. 静态类是自C# 2.0才引入的,C# 1.0不支持静态类声明.程序员必须声明一个私有构造器.…
什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首先看它的位置,是在father类中,而不是在__init__中.那么一个小小的静态字段,我为什么要特意写一篇番外给它呢?耐着性子看下去,你就会发现一个小小的类变量,却折射出了整个类的世界. 首先我们先来解释一下什么叫做静态字段:        我们看上面的例子,左中右三张图,左边是纯净的代码,中间是…
      当一个字段声明中含有 static 修饰符时,由该声明引入的字段为静态字段(静态变量).当不存在 static 修饰符时,由该声明引入的字段为实例字段(实例变量).       静态字段不属于某个特定的实例:相反,它只标识了一个存储位置.不管创建了多少个类实例,对于关联的应用程序域来说,在任何时候静态字段都只会有一个副本.实例字段属于某个实例.具体说来,类的每个实例都包含了该类的所有实例字段的一个单独的集合. (2)字段声明可以包含变量初始值设定项,两者初始化区别如下: 对于静态字段…
转自:http://www.cnblogs.com/Eva-J/p/5044411.html 什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首先看它的位置,是在father类中,而不是在__init__中.那么一个小小的静态字段,我为什么要特意写一篇番外给它呢?耐着性子看下去,你就会发现一个小小的类变量,却折射出了整个类的世界. 首先我们先来解释…
什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首先看它的位置,是在father类中,而不是在__init__中.那么一个小小的静态字段,我为什么要特意写一篇番外给它呢?耐着性子看下去,你就会发现一个小小的类变量,却折射出了整个类的世界. 首先我们先来解释一下什么叫做静态字段:        我们看上面的例子,左中右三张图,左边是纯净的代码,中间是…
一.构造方法 在使用类创建对象的时候(就是类后面加括号)就自动执行__init__方法. class A: def __init__(self): print('A') class B: def __init__(self): print('B') obj = A() #虽然只是创建了obj对象,但是执行了__init__方法,输出了A Python中派生类可以继承父类的构造方法 1.基于super() 遇到super()就表示去执行父类的xxx属性 class A: def __init__(…
问题:字段或属性的问题字段初始值设定项无法引用非静态字段.方法 下面代码出错的原因,在类中定义的字段为什么不能用? public string text = test(); //提示 字段或属性的问题字段初始值设定项无法引用非静态字段.方法 protected void Page_Load(object sender, EventArgs e) { } public string test() { return ""; } 可以通过属性方式调用: public string text…
timeuuid类型 timeuuid具有唯一索引和日期时间的综合特性,可以与日期和时间函数联合使用,常用的关联函数: dateOf() now() minTimeuuid() and maxTimeuuid() toDate(timeuuid) toTimestamp(timeuuid) toUnixTimestamp(timeuuid) 比如 SELECT * FROM myTable WHERE t > maxTimeuuid('2013-01-01 00:05+0000') AND t…
在 dotnet 程序提供了一个好用的特性,可以让字段作为线程的静态字段,也就是在相同线程的所有代码访问的静态字段是相同对象,但不同线程访问的时候是不同的 在 .NET 程序可以使用 ThreadStaticAttribute 特性标记在一个静态字段上,这样这个字段就可以做到在线程里面静态 在一个类的静态字段上面添加 ThreadStaticAttribute 可以让这个字段作为线程的静态字段,也就是在相同的线程访问的时候这个字段是静态的,拿到的对象的实例相同,但是在不同的线程拿到不相同 在 T…
Java序列化机制中的类版本问题 分类: [Java 基础]2014-10-31 21:13 480人阅读 评论(0) 收藏 举报   目录(?)[+]       原文地址:http://yanwushu.sinaapp.com/java_serialversionuid/     内容简介   某些实现了serializable接口的java类中会看到名称为serialVersionUID的静态字段,本文从根本上解释这个字段的含义. 知识铺垫   在java中,类的序列化和反序列化是由jvm…
静态字段与静态方法   之前我们都定义的main方法都被标记了static修饰符,那到底是什么意思?下面我们来看看 静态字段   如果将一个字段定义为static,每个类只有一个这样的字段.而对于非静态的实例字段,每个对象都有自己的一个副本.例如,假设需要给每一个员工赋予唯一的标识码.这里给Employee类添加一个实例字段id和一个静态字段nextId: class Employee { // 定义静态字段nextId private static int nextId = 1; privat…
目录(?)[-] servlet-contextxml configproperties 示例属性 ConfigInfo 对应的配置bean 使用   在项目中,有些参数需要配置到属性文件xxx.properties中,这样做是为了维护方便,如果需要变动只需修改属性文件,不需要重新编译项目就可以了,非常方便. 而为了使用起来方便,可以通过将属性值注入到类的静态字段中(static),这样就可以用className.fieldName的方式来获取了. 1.servlet-context.xml <…
http://www.cnblogs.com/bluestorm/p/3432190.html 问题:字段初始值设定项无法引用非静态字段.方法或属性的问题 下面代码出错的原因,在类中定义的字段为什么不能用? public class Test {    public Test()    {    }    public int Age=23;    public int temp = Age;//ERROR 字段初始值设定项无法引用非静态字段.方法或属性} C#规定在类内部只能定义属性或者变量,…
问题:使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数. 请写一个类,在任何时候都可以向它查询"你已经创建了多少个对象?". 程序设计思想: 利用静态变量指定一个计数器number, 创建一个对象时总要执行一次构造函数, 那么,当构造函数执行时令number自增, 便可以得到最后所创建对象的数量 程序流程图: 源代码: /** * */ /** * @author 信1605-3 20163471 吴鑫 * */ public class NumofObj { /** *…
1.静态字段 1.1定义:用static修饰的字段称为静态字段 普通字段在每个实例中都有自己的一个独立的空间 静态字段只有1个共享空间,所有实例都共享该字段. public class Person{ public String name; public int age; public static int number = 100; public Person(String name, int age){ this.name = name; this.age = age; } } public…
我们都知道windows操作系统和Linux操作系统中的路径分隔符是不一样的,当我们直接使用绝对路径的时候,程序会报错误:No such file or diretory”的异常 File类有几个类似separator的静态字段,都是与系统相关的,在编程时应尽量使用: - separatorChar - separator - pathSeparatorChar - pathSeparator separatorChar public static final char separatorCha…
有时spring 项目中需要将配置文件的属性注入到类的静态字段中 例如:文件上传 //文件上传指定上传位置 //resource-dev.properties 有如下参数 #upload UPLOAD_PATH=D:\\home\\images STATIC_URL=http://127.0.0.1/images/upload/ 如果想在类中直接使用,可以通过定义常量类的静态字段来获取 @Component @PropertySource("classpath:dev/resource-dev.…
我们试想一下现在有一个类Parent,它有一个static的int类型字段number,然后如果类Parent有三个子类Child01.Child02和Child03,那么改变Parent.number的值的话,Child01.number.Child02.number和Child03.number的值也会被更改吗? 新建一个.NET Core的控制台项目,我么来看看如下代码: using System; namespace ConsoleApp { /// <summary> /// 父类…
self是什么,就是一个函数,就是一个形式参数 4.self就是调用当前方法的对象 静态字段,公有属性 静态字段使用场景,每个对象中保存相同的东西时,可以使用静态字段,公有属性 5.封装的理解 类中封装了:字段(属性)和方法 实例(对象)中封装了:普通属性(普通字段) self.b=o2 self.b.a=o1 self.b.a.N=alex 继承的理解: 6. 属性:字段: 普通字段(成员属性),保存在对象中 静态字段(全局属性),保存在类中 方法: 普通方法(保存在类中,调用者就是对象,至少…
静态字段被类的所有实例所共享,即此类的所有实例都访问同一内存地址. 所以该内存位置的值变更的话,这种变更对所有的实例都可见. class MyClass { ; ; public void SetValue(int value1, int value2) { this.number = value1; staticNumber = value2; } public string DisplayValues() { return string.Format("number:{0}, staticN…
1.使用关键字 static 修饰的字段或方法成为静态字段和静态方法,如 public static int num = 1;2.静态字段属于类,并为类所用.而非静态字段属于对象,只能被特定的对象专有.3.C#严格规定非静态字段只能通过对象来访问,静态字段只能通过类来访问.4.在跟类的实例无关,只跟类有关的情况下使用静态成员(如Math类的数学计算方法等不需要创建多个实例)5.使用静态成员可以避免创建对象时引入一次对象的构造和一次对象的析构6.C#静态方法及属性在程序启动的时候,就全部装入内存的…
6.静态方法 使用静态方法就可不必用类的实例化调用次函数 class Test { public static void method() { ........ } //当调用一个method()时就可以直接用类名调用 Test.method; } 6.静态字段 7.静态类 静态类里的变量和方法也必须是静态的,静态类的一切都不能被实例化 8.匿名类…
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Test { class Program { static void Main(string[] args) { var ins= new TestClass(); ; i < ; i++) { Task.Factory.StartNew(() =…
Python通过路径找类并获取其中大写的静态字段 settings.py class Foo: DEBUG = True TEST = True xx.py import importlib path = "settings.Foo" p,c = path.rsplit('.', maxsplit=1) m = importlib.import_module(p) cls = getattr(m, c) # 如果找到这个类? for key in dir(cls): if key.is…
类的静态字段在类的实例中是共享的.多个线程修改实例字段的值在对其它线程来说是可见的,这也是clr默认的行为.对静态字段添加ThreadStaticAttribute标记可以改变这种默认的行为. ThreadStaticAttribute 指示静态字段的值对于每个线程都是唯一的.用 ThreadStaticAttribute 标记的 static 字段不在线程之间共享.每个执行线程都有单独的字段实例,并且独立地设置及获取该字段的值.如果在不同的线程中访问该字段,则该字段将包含不同的值. [Thre…
public class Dog{ public static void main(String[]args){ A a= new A(); a.add(); //java实例对象可以访问类的静态方法和静态字段,C#却不能; int id = a.id; System.out.println(id); } } class A{ public static int id=10; public static void add(){ System.out.println(id); } }…
问题:字段初始值设定项无法引用非静态字段.方法或属性的问题 在类中  变量赋值其他变量报错? public class TestClass{  public TestClass()  {  }  public int a=1;  public int b= a;//注意 此处会报错  字段初始值设定项无法引用非静态字段.方法或属性} 原因: C#规定在类内部只能定义属性或者变量,并初始化,不能直接变量引用变量. 类中声明的字段叫法 在类内部使用声明的字段 我们可以称这个字段为变量 在其他地方实例…
方法的重载概念:方法的重载指的就是方法的名称相同给,但是参数不同.参数不同,分为两种情况1).如果参数的个数相同,那么参数的类型就不能相同.2).如果参数的类型相同,那么参数的个数就不能相同.***方法的重载跟返回值没有关系. .静态和非静态的区别1).在非静态类中,既可以有实例成员,也可以有静态成员.2).在调用实例成员的时候,需要使用对象名.实例成员; 在调用静态成员的时候,需要使用类名.静态成员名;总结:静态成员必须使用类名去调用,而实例成员使用对象名调用. 静态函数中,只能访问静态成员,…