易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi中实现C++/Java类似静态变量的功能

在网上看到很多人都在为Delphi是否支持C++/Java中的静态变量及静态方法的功能而困扰,其实这在Delphi中是很简单的.
静态方法就是使用Class Function. 静态变量则使用单元局部变量来实现. 代码如下:
//=========================================
// StaticVarTestU - 定义了可以计数的类,通过类方法即可访问此类的对象数
//=========================================
unit StaticVarTestU;
interface
type
TStaticVarClass = class
public
//constructor
constructor Create();
destructor Destroy; override;
//类方法,取得对象的计数
class function ObjectCount: integer;
protected
private

end;
implementation
Var
LObjCount: integer;
{ TStaticVarClass }
constructor TStaticVarClass.Create;
begin
inc(LObjCount); //使用局部变量
end;
destructor TStaticVarClass.Destroy;
begin
dec(LObjCount); //使用局部变量

inherited;
end;
class function TStaticVarClass.ObjectCount: integer;
begin
Result := LObjCount; //返回局部变量
end;
initialization
LObjCount := 0; //初始化
finalization
LObjCount := 0;
end.
//=========================================
// StaticTest - 测试代码,创建10个对象,并访问其计数,再Free掉.
//=========================================
program StaticTest;
{$APPTYPE CONSOLE}
uses
SysUtils,
Classes,
StaticVarTestU in StaticVarTestU.pas;
procedure printObjCount;
begin
WriteLn(Format(The Object Count now is %d, [TStaticVarClass.ObjectCount]));
end;
var
i: integer;
mObjList: TList;
begin
{ TODO -oUser -cConsole Main : Insert code here }
mObjList := TList.Create;
printObjCount;
for i := 0 to 10 do
begin
mObjList.Add(TStaticVarClass.Create());
printObjCount;
end;
for i := 0 to mObjList.Count -1 do
begin
TStaticVarClass(mObjList.Items[i]).Free;
printObjCount;
end;
mObjList.Free;
readln;
end.


相关文档:

JAVA笔记(三)数据结构

动态内存分配
创建和维护动态数据结构要求进行动态内存分配,即程序能够在执行时获得更多的内存空间来放新结点,并在不需要这些内存时释放他们。
数据列表可以用数据进行存储,但是用链表存储有几个好处。在数据结构要表示的数据元素的数目无法预先确定的情况下,链表能够提供更合理的空间分配。链表是动态的,所以其长度 ......

Java的main方法与类的加载的联系

鉴于许多同学对这个main方法的迷惑!我这里提供一些意见,希望对大家有帮助!呵呵!
     ****我们说加载先:
      Java的类是用到才开始加载的,并且在每个类的构造器调用之前,类的每个域(成员变量)都要首先被编译器初始化一次,然后才轮到构造器来干活儿。但是,Java ......

超简单程序99乘法表(java)

public class chengfa {
 public static void main(String[] args)
 {
  model md=new model();
  
  md.method();
  
  
 }
}
class model
{
 public int count=0;
 public int[]b=new int[100];
 
 public void me ......

Java文件操作实例


/*
程序功能:将ecoli(1).txt分割,其中分割的分割符是>
分割的文件名是>gi|????|,"???"表示一段数字,用数字做子文件名
文件以字符"!"结尾
程序员:xianglinyan
*/
import java.io.*;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
impo ......

JAVA俄罗斯方块

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/*
TRTRIS GAME
WRITE BY DELFAN
EMAIL : webmaster@delfan.com
URL : http://www.delfan.com
经典"俄罗斯方块"游戏
作者 : DELFAN
EMail : webmaster@delfan.com
主页 : http://www.delfan.com
版本信息:
2002.01.13 基本完成 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号