Árvore de páginas

TLPP - LANGUAGE

No quadro abaixo, o exemplo completo do caso Point/Circle.
No exemplo, é possível compilar e rodar a função U_Circle().



Exemplo completo de herança
#include "tlpp-core.th"
 
Class Point
   private data x as numeric
   private data y as numeric
   public method New(x as numeric, y as numeric)
   public method getX() as numeric
   public method getY() as numeric
EndClass
 
Class Circle From Point
   private data r as numeric
   public method New(x as numeric, y as numeric, r as numeric)
   public method draw()
EndClass


// Implementando a classe pai Point
/////////////////////////////////////////////////////////////////

method New(x as numeric, y as numeric) class Point
  ::x := x
  ::y := y
Return Self

method getX() class Point
Return ::x

method getY() class Point
Return ::y


// Implementando a classe filha Circle
/////////////////////////////////////////////////////////////////

method New(x as numeric, y as numeric, r as numeric) class Circle
  _Super:New(x, y) // as coordenadas x e y estão na classe pai Point
  ::r := r
Return Self

method draw() class Circle
  Local x := ::getX() as Numeric   // método herdado
  Local y := ::getY() as Numeric   // método herdado 
  Conout("Desenhe um círculo de raio " + cValToChar(::r) + " no centro (" + cValToChar(x) + ", " + cValToChar(y) + ")")
Return


// Criando uma função para rodar o exemplo
/////////////////////////////////////////////////////////////////

Function U_Circle()
   Local obj as Object
   obj := Circle():New(40,12,10)
   obj:draw()
Return



  • Sem rótulos