Classes
27/02/2006
0
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
Posts
28/02/2006
Thiagofmam
o Problema eh esse
[b:5eee3e8804]
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).[/b:5eee3e8804]
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
[/b]
28/02/2006
Aroldo Zanela
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:
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:
{ 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:
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.
28/02/2006
Thiagofmam
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
Clique aqui para fazer login e interagir na Comunidade :)