Programação orientada a objeto

Delphi

22/01/2004

Ola

Crie esse Post porque ainda tenho muitas duvidas sobre esse assunto(duvidas que ate pode ser fáceis mas... :mrgreen: ).
Tipo

Eu faço uma classe e tbm as procedures . Mas como usar as procedures? Como fazer para meu programa usar e receber a informação realizada pelas procedures.(acho que é isso)....

Bom é isso por enquanto... em breve trarei mais duvidas...

Dart


Dart

Dart

Curtidas 0

Respostas

Beppe

Beppe

22/01/2004

É impossível explicar tudo num post só, então vou resumir um bocado.

Está é uma classe chamada Veiculo:
type
  Veiculo = class(TObject)
  private
    FCor: Cor;
    FKilometragem: Double;
  public
    constructor Cria(const Cor: String);
    procedure Anda(Kms: Double);
    function PegaInfo: String;
  end;

constructor Veiculo.Cria(const Cor: String)
begin
  inherited Create;
  FCor := Cor;
end;

procedure Veiculo.Anda(Kms: Double);
begin
  FKilometragem := FKilometragem + Kms;
end;

function Veiculo.PegaInfo: String;
begin
  Result := Format(´Sou um veículo ¬s e já percorri ¬g kms´, [FCor, FKilometragem]);
end;


Pode ser usada assim:
var
  V: Veiculo;
begin
  V := Veiculo.Cria(´vermelho´);  // cria um vermelho
  try
    V.Anda(1.2);                  // anda um pouco
    ShowMessage(V.PegaInfo);      // exibe informações atuais de V
    V.Anda(7.3);
    ShowMessage(V.PegaInfo);
  finally
    V.Free;
  end;
end;


Quando eu chamo Veiculo.Cria(...), um novo Veiculo é criado(instânciado), e qualquer método que eu chamar sobre ele opera sobre os dados da instância passada como o ´sujeito da frase´, neste caso V.


GOSTEI 0
Ferdelphi12540

Ferdelphi12540

22/01/2004

E ai pessoal,

Gostaria de saber se alguem conhece um livro bom de POO, sou iniciante em POO e gostaria de saber mais sobre o assunto. Ja li algumas coisas sobre, mas são escrito em uma linguagem que é dificil de entender, e gostaria de saber de um livro de facil entendimento..

Obrigado..

Fernando


GOSTEI 0
Nigro

Nigro

22/01/2004

A todos vocês...
Gostaria de saber a opinião sobre POO, pois estou em uma empresa, onde a linguagem utilizada é V.O. e aqui só trabalham assim com O.O, estou enlouquecendo pois nunca tinha visto isso antes, é uma tendência? É uma forma melhor de se trtabalhar? É mais fácil de dar manutenção no sistema? Vantagans e desvantagans... Por favor....
Obeigado


GOSTEI 0
Dart

Dart

22/01/2004

Beppe

Mas da para fazer uma procedure para criar o um novo Veiculo? e como executar esse procedure?

Valeu.


GOSTEI 0
Beppe

Beppe

22/01/2004

Beppe Mas da para fazer uma procedure para criar o um novo Veiculo? e como executar esse procedure? Valeu.


Sim. Esse tipo de procedure chama-se [b:be63570ae8]constructor[/b:be63570ae8](construtor). Dá uma olhada no exemplo que passei, constructor Cria, embora geralmente chamamo-os de Create. Um [i:be63570ae8]construtor[/i:be63570ae8] é visto como uma função de classe, á que você chama através da própria classe, e não de um objeto. Um construtor retorna uma nova instância da classe.

Ex:
V := Veiculo.Create(´verde´); // certo
V := V.Create(´verde´); // errado, não compila
V.Create(´verde´); // compila, faz inicializar a classe, mas é conceitualmente erradoconceitualmente errado



GOSTEI 0
POSTAR