18-poo.lua 833 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. -- Atributos.
  2. local animal = {
  3. name = 'Chato',
  4. color = 'Black',
  5. x = 0,
  6. y = 0
  7. }
  8. -- Constructor.
  9. function animal:new(object)
  10. return setmetatable(object or {}, {
  11. __index = self
  12. })
  13. end
  14. -- Métodos.
  15. function animal:up()
  16. self.y = self.y + 1
  17. end
  18. function animal:down()
  19. self.y = self.y - 1
  20. end
  21. function animal:right()
  22. self.x = self.x + 1
  23. end
  24. function animal:left()
  25. self.x = self.x - 1
  26. end
  27. function animal:getName()
  28. print('Name:', self.name)
  29. end
  30. function animal:getColor()
  31. print('Color:', self.color)
  32. end
  33. function animal:getPosition()
  34. print('x:', self.x)
  35. print('y:', self.y)
  36. end
  37. -- Instancia del objeto.
  38. local cuyo = animal:new({
  39. name = 'Cuyín',
  40. color = 'Brown'
  41. })
  42. cuyo:getName()
  43. cuyo:getColor()
  44. cuyo:up()
  45. cuyo:right()
  46. cuyo:getPosition()
  47. animal:getName()
  48. animal:getColor()
  49. animal:getPosition()