class.nut 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. //////////////////////////////////////////////////////////////////////////////////
  2. //////////////////////////////////////////////////////////////////////////////////
  3. class BaseVector {
  4. constructor(...)
  5. {
  6. if(vargv.len() >= 3) {
  7. x = vargv[0];
  8. y = vargv[1];
  9. z = vargv[2];
  10. }
  11. }
  12. x = 0;
  13. y = 0;
  14. z = 0;
  15. }
  16. class Vector3 extends BaseVector {
  17. function _add(other)
  18. {
  19. if(other instanceof this.getclass())
  20. return ::Vector3(x+other.x,y+other.y,z+other.z);
  21. else
  22. throw "wrong parameter";
  23. }
  24. function Print()
  25. {
  26. ::print(x+","+y+","+z+"\n");
  27. }
  28. }
  29. local v0 = Vector3(1,2,3)
  30. local v1 = Vector3(11,12,13)
  31. local v2 = v0 + v1;
  32. v2.Print();
  33. FakeNamespace <- {
  34. Utils = {}
  35. }
  36. class FakeNamespace.Utils.SuperClass {
  37. constructor()
  38. {
  39. ::print("FakeNamespace.Utils.SuperClass")
  40. }
  41. }
  42. class FakeNamespace::Utils::SuperClass2 {
  43. constructor()
  44. {
  45. ::print("FakeNamespace::Utils::SuperClass2")
  46. }
  47. }
  48. local testy = FakeNamespace.Utils.SuperClass();
  49. local testy2 = FakeNamespace::Utils::SuperClass2();
  50. class Base_Window /*extends Fl_Window*/ {
  51. }
  52. local mw = new Base_Window();
  53. class MainWindow extends Base_Window {
  54. }
  55. mw = new MainWindow();
  56. class MyMainWindow extends MainWindow {
  57. }
  58. mw = new MyMainWindow();