【问题标题】:What is the equivalent of :: operator in java?java中 :: 运算符的等价物是什么?
【发布时间】:2017-05-10 12:00:49
【问题描述】:

在 c++ 中从另一个类访问函数时, 我们可以这样写:classA::fct();

java中是否有等价的运算符? 如果没有,我们如何从java中的另一个类访问一个函数?

【问题讨论】:

标签: java function class operators


【解决方案1】:

举一个学生班的例子,它有你在 c++ 中称为函数的方法 例如。

    class Student{ 
    //a non static method
    public void getFees(){
    //your logic
    }  
    public static void deleteSubject(){
    // your logic
    }

} 
class Club{
  //create a new instance of student class
Student student = new Student();
public void printData(){ 
//access a non static method  
student.getFees(); 
//accessing a static method 
new Student().deleteSubject();
}

} 

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    C++ 中的 ::-operator (Scope Resolution Operator) 允许您解决对标识符的模糊调用/引用。但是,在 java 中没有独立的函数,因为所有函数实际上都是类的方法(成员)。因此不需要此运算符,请查看here 了解 Java 和 C++ 类之间的差异。

    我猜您正在尝试访问一个类的成员(可能是静态的),在这种情况下,您将使用 .-operator,如 Mwesigye's answer 中的示例或如下所示:

    public class AB {
        public static void main(String[] args) {
            B myB = new B();
            myB.printA();
        }
    }
    
    public class A {
        public static int getInt() {
            return 4;
        }
    }
    
    public class B {
        public void printA() {
            System.out.println(A.getInt()); // output: 4
        }
    }
    

    这里.-操作符用于从实例化对象myB(从B类实例化)访问printA()。它还用于访问静态方法getInt(),其实现与A 类而不是A 的任何对象相关联。更多信息可以在here 找到。

    【讨论】:

      猜你喜欢
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      • 2023-04-10
      相关资源
      最近更新 更多