Array
(
)

Classes

Thiagofmam
   - 27 fev 2006

Galera, alguem poderia me passar algum site ou apostila que explique as funçoes das classes ( objetos). Tou começando a programar ainda, o professor passou um exercicio para gerenciar contas correntes com o uso de classes , usar constructor destructor ... etcs ... depois criar um array dinamico de classes ...

Resumindo num sei nem por onde começo , se alguem poder ajudar ai vlws.

Obs : Jah procurei no google sobre classes, mais soh q maioria era com uso em java, C, C++ ... e as que tinha falava pouco sobre as classes. Vlews


Thiagofmam
   - 28 fev 2006

Naum quero que resolvam naum ... quero uma ideia

o Problema eh esse


1) Implementar uma classe que atenda as seguintes especificações:
Nome da classe: TContaCorrente
Objetivo: Controlar o saldo bancário de uma pessoa
Operações:
constructor Inicialize(NumConta: Integer; NomePessoa: string;
SaldoInicial: Real);
Objetivo: Inicializar o objeto com o número da conta corrente, o nome do correntista e o saldo inicial.
procedure Movimento(Data: string; Valor: Real; TipoMov: Char);
Objetivo: Registrar um movimento na conta, atualizando seu saldo. O parâmetro Data conterá a data
do movimento, o parâmetro Valor conterá o valor do movimento e o parâmetro TipoMov indica se o
movimento foi de crédito (C) ou de débito (D).

A unit do programa q tou tentando fazer ....

interface
type
TContCorrent = Class
NumConta : Integer;
NomePessoa : String;
SaldoInicial : Real;
Constructor Inicialize(NumConta: Integer; NomePessoa: string;
SaldoInicial: Real);

end;

implementation

{ TContCorrent }

constructor TContCorrent.Inicialize(NumConta: Integer; NomePessoa: string;
SaldoInicial: Real);
begin
NumConta := 0;
NomePessoa := ´´;
SaldoInicial := 0;

end;

end.

-------------------------

program PList08;

{$APPTYPE CONSOLE}

uses
SysUtils,
Crt32D7,
UList08 in ´UList08.pas´;
var
CConta : TContCorrent;

begin
Writeln(´Digite o numero da conta : ´);
Readln(CConta.NumConta);
Writeln(´Digite o nome da pessoa : ´);
Readln(CCOnta.NomePessoa);
Writeln(´Digite o saldo Inicial : ´);
Readln(CCOnta.SaldoInicial);
CConta.Inicialize(CConta.NumConta,CCOnta.NomePessoa,CCOnta.SaldoInicial);

end.

-----------------------------
lembro q meu professor falou de algo q tem q iniciar as classes q elas por padrao sao ponteiros ... q inicializa sem apontar pra nada .... !!

Queriam q me ajudasse ai ... vlws



Aroldo Zanela
   - 28 fev 2006

Colega,

Obviamente que esta simplificação é apenas para fins didáticos, pois ´Conta Corrente´ está mais para um atributo de ´Correntista´ que para uma classe. Seguindo o seu raciocínio inicial:

Declarando a classe:
#Código


TContaCorrente = Class
private
FNumeroConta: Integer;
FNomePessoa: String;
FSaldoInicial: Currency;
procedure SetNomePessoa(const Value: String);
procedure SetNumeroConta(const Value: Integer);
procedure SetSaldoInicial(const Value: Currency);
public
Constructor Inicialize(ANumeroConta: Integer; ANomePessoa: string; ASaldoInicial: Currency);
Destructor Destroy; override;
property NumeroConta: Integer read FNumeroConta write SetNumeroConta;
property NomePessoa: String read FNomePessoa write SetNomePessoa;
property SaldoInicial: Currency read FSaldoInicial write SetSaldoInicial;
end;


Implementação dos métodos:
#Código

{ TContaCorrente }

destructor TContaCorrente.Destroy;
begin
inherited;
end;

constructor TContaCorrente.Inicialize(ANumeroConta: Integer;
ANomePessoa: string; ASaldoInicial: Currency);
begin
inherited;
FNumeroConta:= ANumeroConta;
FNomePessoa:= ANomePessoa;
FSaldoInicial:= ASaldoInicial;
end;

procedure TContaCorrente.SetNomePessoa(const Value: String);
begin
FNomePessoa := Value;
end;

procedure TContaCorrente.SetNumeroConta(const Value: Integer);
begin
FNumeroConta := Value;
end;

procedure TContaCorrente.SetSaldoInicial(const Value: Currency);
begin
FSaldoInicial := Value;
end;


Testando:
#Código

procedure TForm1.btn1Click(Sender: TObject);
var ContaCorrente: TContaCorrente;
begin
ContaCorrente:= TContaCorrente.Inicialize(1,´Aroldo Zanela´, 10000);
ShowMessage(ContaCorrente.NomePessoa);
ContaCorrente.Free;
end;


btn1 = TBitBtn no formulário.

A propósito, existem várias apostilas no site da DevMedia que poderão lhe ajudar.


Thiagofmam
   - 28 fev 2006

constructor TContaCorrente.Inicialize(ANumeroConta: Integer;
ANomePessoa: string; ASaldoInicial: Currency);
begin
inherited;
FNumeroConta := ANumeroConta;
FNomePessoa := ANomePessoa;
FSaldoInicial := ASaldoInicial;
end;

procedure TContaCorrente.SetNomePessoa(const Value: String);
begin
FNomePessoa := Value;
end;

procedure TContaCorrente.SetNumeroConta(const Value: Integer);
begin
FNumeroConta := Value;
end;

procedure TContaCorrente.SetSaldoInicial(const Value: Currency);
begin
FSaldoInicial := Value;
end;

Essa parte foi de grande importancia pra mim ... tava me batendo +- com isso ... com a estrutura q eu teria q adequar a unit.

Vou procurar mais sobre classes no site.
Vlws mesmo :D