代码之家  ›  专栏  ›  技术社区  ›  Tegra Detra

在其他类中使用对象变量

  •  2
  • Tegra Detra  · 技术社区  · 15 年前

    我有一个对象,它的函数我想从另一个类中调用,例如

    class smo {
    
        int spoon = 10;
    
        smo() {
        }
    
        int get_spoon() {
            return spoon;
        }
    }
    
    class boat {
    
        boat() {
        }
    
        print_smo(Object test) {
    
            test.get_spoon();
    
        }
    }
    

    它告诉我函数get.spoon()不存在。这个错误是有意义的,因为对象没有被创建,所以不能调用函数,但是当它运行并且我向它传递了一个合适的smo类型的对象时,它就会存在。

    1 回复  |  直到 15 年前
        1
  •  4
  •   Jack    15 年前

    由于Java具有静态语法检查,所以在运行程序之前需要了解对象的正确类型。因为它没有 type inference 程序员有责任在源代码中声明它们。

    这意味着要真正调用 smo 方法 get_spoon() 在一 SMO 对象必须声明它将是该类型,而不仅仅是 Object (在 Java ):

    void print_smo(smo test)
    {
      test.get_spoon();
    }
    

    这会奏效的。让你打电话 oneBoot.print_smo(new smo()) .

    两面注释:

    • 类名应为 camelcased 这样: ClassName
    • 方法和变量也应采用camelcase,但不应使用第一个字母,例如: myLongVariable