C#桌面应用程序开发 笔记#2类的静态对象
类的成员有哪些?
成员的分类:
1、存储数据(字段、属性、集合)
2、行为(函数/方法、事件)
3、作为标识(枚举、常量)
4、内置对象(结构体,类)
类成员的所属关系:
1、归类本身所有(static)
2、归类的实例所有(类实例化后的对象,instance)
==================================
所谓的面向对象其实就是模拟人类社会。
==================================
静态成员使用static关键字修饰的。它是属于类所有。
所有类型的实例都有的属性、字段、函数等,属于类所有。
静态成员由类进行调用。静态成员的数据是由类存储。
========================
没有使用static关键字修饰的就是实例成员。
实例成员只能由类的实例调用和存储。
===============================
静态成员只能通过类进行调用。
实例成员只能通过类的实例进行调用
============================
定义静态成员的语法:
[访问修饰符] static 数据类型 字段名称;
[访问修饰符] static 返回值类型 函数名称(形参列表){函数体;}
简单的说就是加了static关键字的成员就是静态成员,没有static关键字的就是实例成员。
================================
定义实例成员的语法:
[访问修饰符] 数据类型 字段名称;
[访问修饰符] 返回值类型 函数名称(形参列表){函数体;}
======================
静态成员的特征:
1、必须通过static关键字定义,通过类名访问
2、在内存中一个静态字段只是标识一个存储位置,无论你创建了一个类的多少实例,它的静态字段在内存中都只占同一块区域。
3、静态方法不能作用于对象,静态方法中不能直接使用实例成员,必须要通过对象名引用访问,但是可以直接访问本类的静态成员
4、静态字段的数据被类型的对象共享。
5、静态的成员速度快,但占内存,就像数据的缓存一样,经常使用的数据我们应该将它们缓存。
======================
实例成员特征:
1、实例成员不能添加static关键字定义,通过对象名访问
2、类的实例成员属于类的对象所有,每创建一个类的实例,都在内存中为实例字段开辟了一块区域。类的每个对象,分别包含一组该类所有的实例字段的副本。
3、类的实例方法直接作用于类的对象,在实例方法中可以直接访问本类的静态成员和实例成员
4、调用完毕后会自动释放资源,这样可以节省内存空间。
5、实例的速度比较慢,但是灵活,而且不占内存,因为只要没有对这个实例的引用了,就会回收释放资源
============================
主意:
设计类型时要知道你所设计的类型是否是辅助类,是否有方法/函数是频繁的调用,如果是则可以考虑设计为静态的,另外如果某个字段的内容是作为标识并且在整系统中都会用到的情况下也可以考虑用静态字段

浙公网安备 33010602011771号