Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Delphi e POO Duvida


Leonardo Silva

Pergunta

Ola Pessoal, estou estudando um pouco de Delphi e Orientação a Objeto, então peguei um exercicio e resolvi, faze-lo, porém estou muito perdido, poderiam me ajudar com algumas dicas?

Segue Enunciado em anexo.

e isso foi o que já fiz, não sei se esta certo, mas estou tentando aos poucos.

 

 

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

{---------------Classe Transporte-----------------}
  type
    tTransporte = class
private

public
  nome : string;
  constructor Create; overload;
  constructor Create(nome : string); overload;

  procedure move (metros : Integer);
end;
{---------------Classe Carro-----------------}
type
  tCarro = class(tTransporte)
private

public
  procedure pCarro;
end;
{---------------Classe Avião-----------------}
type
  tAviao = class(tTransporte)
private

public
  procedure pAviao;
end;

implementation

{ Ttransporte }

constructor tTransporte.Create;
begin
  inherited;
end;

constructor tTransporte.Create(nome : string);
begin
  Self.nome := nome;
end;


procedure tTransporte.move(metros : Integer);
begin
  ShowMessage(  nome + 'Moveu' + inttostr(metros) + 'm.');
end;

{ tCarro }

procedure tCarro.pCarro;
begin
  Self.nome := 'Prosche 911';
  move(100);
end;

{ tAviao }

procedure tAviao.pAviao;
begin
  Self.nome := 'Boing';
  move(2500);
end;

end.

 

Teste.JPG

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

voce criou uma Unit certo ?   depois de ter criado a Unit voce vai salva-la no disco

 

unit UnitPOO1;  /////  TROQUEI O NOME DA UNIT PARA VOCE PODER ENTENDER MELHOR O FUNCIONAMENTO

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

{---------------Classe Transporte-----------------}
  type
    tTransporte = class
private

public
  nome : string;
  constructor Create; overload;
  constructor Create(nome : string); overload;

  procedure move (metros : Integer);
end;
{---------------Classe Carro-----------------}
type
  tCarro = class(tTransporte)
private

public
  procedure pCarro;
end;
{---------------Classe Avião-----------------}
type
  tAviao = class(tTransporte)
private

public
  procedure pAviao;
end;

implementation

{ Ttransporte }

constructor tTransporte.Create;
begin
  inherited;
end;

constructor tTransporte.Create(nome : string);
begin
  Self.nome := nome;
end;


procedure tTransporte.move(metros : Integer);
begin
  ShowMessage(  nome + ' Moveu ' + inttostr(metros) + ' m.');
end;

{ tCarro }

procedure tCarro.pCarro;
begin
  Self.nome := 'Porche 911';
  move(100);
end;

{ tAviao }

procedure tAviao.pAviao;
begin
  Self.nome := 'Boing';
  move(2500);
end;

end.

===========================================================================

Para fazer isso ser executado, voce cria uma nova aplicação, onde vai ser criado um Form

no Form voce vai instanciar os objetos criados ( por exemplo em um botão )

 

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses UnitPOO1;   /// AQUI VOCE CHAMA A UNIT QUE VOCE CRIOU

procedure TForm1.Button1Click(Sender: TObject);
var Transp : tCarro; Transp1 : tAviao;
begin
  Transp.pCarro;
  Transp1.pAviao;
end;

end.

=========================================================

Aqui o Resultado

Porche 911 moveu 100 m

Boing moveu 2500 m

=========================================================

abraço

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...