MM生成的一个类,

原创 2005年02月26日 02:46:00

原贴见:http://community.csdn.net/Expert/topic/3793/3793756.xml
这里的是他的MM图,有MM的可以导进去看看。



代码 pro3.pas
unit pro3;

interface

uses
 SysUtils,Dialogs,Contnrs;

type
  TProduct = class(TObject)
  private
    FName: string;
    FPrice: Double;
    function GetName: string;
    function GetPrice: Double;
    procedure SetName(const Value: string);
    procedure SetPrice(Value: Double);
  public
    constructor Create; overload;
    procedure SayHello; virtual;
    property Name: string read GetName write SetName;
    property Price: Double read GetPrice write SetPrice;
  end;
 
  TProductXY = class(TProduct)
  public
    procedure SayHello; overload;
  end;
 
  TProductZY = class(TProduct)
  public
    procedure SayHello; overload;
  end;
 
  TStore = class(TObject)
  private
    FProductList: TObjectList;
    function GetProductList: TObjectList;
  public
    constructor Create;
    destructor Destroy; override;
    procedure AddProduct(aProduct:TProduct);
    property ProductList: TObjectList read GetProductList;
  end;
 

implementation

{
*********************************** TProduct ***********************************
}
constructor TProduct.Create;
begin
   FName:='商品TProduct';
  FPrice:=0;
  ShowMessage('商品被创建');
end;

function TProduct.GetName: string;
begin
  Result:=FName;
end;

function TProduct.GetPrice: Double;
begin
  Result:=FPrice;
end;

procedure TProduct.SayHello;
begin
end;

procedure TProduct.SetName(const Value: string);
begin
  if FName<>Value then
     FName:=Value
  else
     ;
end;

procedure TProduct.SetPrice(Value: Double);
begin
  If Value>0 then
     FPrice:=Value
  else
     FPrice:=0;
end;

{
********************************** TProductXY **********************************
}
procedure TProductXY.SayHello;
begin
  ShowMessage('我是西药,我的名字是'+Name+'单价:'+FloattoStr(Price));
end;

{
********************************** TProductZY **********************************
}
procedure TProductZY.SayHello;
begin
  ShowMessage('我是中药,我的名字是'+Name+'单价:'+FloattoStr(Price));
end;

{
************************************ TStore ************************************
}
constructor TStore.Create;
begin
  FProductList:=TObjectList.Create();
  FProductList.OwnsObjects := True;  //使FProductList在销毁时自动销毁其下拥有的对象
end;

destructor TStore.Destroy;
begin
  FProductList.Free;
  inherited Destroy;
end;

procedure TStore.AddProduct(aProduct:TProduct);
begin
  FProductList.Add(aProduct);
  ShowMessage(aProduct.Name+'被加入');
end;

function TStore.GetProductList: TObjectList;
begin
  Result:=FProductList;
end;


end.

相关文章推荐

【面试题】剑指Offer-2-如何控制一个类生成对象的个数

题目概述 原题目是,如何控制一个类只生成一个对象 这里我们进行扩展 问题1:控制一个类不能生成对象 问题2:控制一个类只生成一个对象 问题3:控制一个类生成对象的个数在一定数量之间 问题1...

设计一个类,我们只能生成该类的一个实例。

单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。 从具体实现角度来说,就是以下三点:一是单例模式的类只提供私有的构造函数,二是类定义中...

在初始化一个类,生成一个实例的时候;newInstance() 和 new 有什么区别?

在初始化一个类,生成一个实例的时候;newInstance() 和 new 有什么区别? 用newInstance与用new是区别的,区别在于创建对象的方式不一样,前者是使用类加载机制,那么为什么会...

面试题2 设计一个类,我们只能生成该类的一个实例

using System; using System.Collections.Generic; // 包含定义泛型集合的接口和类;泛型集合允许用户创建强类型的集合, ...

用javase写一个类实现自动生成验证码的功能,验证码随机自动生成;

用javase写一个类实现自动生成验证码的功能,验证码随机自动生成;

[MM] 地牢生成算法@1

#include #include #include #include #include   class Dungeon { int xmax; int ymax;   ...

mm7 smil文件 生成

  • 2011年01月13日 09:42
  • 291KB
  • 下载

IntelliJ IDEA 中如何查看一个类的所有继承关系(当前类的所有继承关系图)

在 IntelliJ IDEA 中这个查看一个类也就是当前类的所有继承关系,包括实现的所有的接口和继承的类, 这个继承,不仅仅是一级的继承关系,包括好几层的继承。父类的父类的父类。直到最后。 可以很清...

将声卡音量控制封装成一个类

  • 2006年02月23日 09:05
  • 7KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MM生成的一个类,
举报原因:
原因补充:

(最多只允许输入30个字)