java中的::运算符的等价物是什么?

时间:2016-12-25 20:06:28

标签: java function class operators

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

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

2 个答案:

答案 0 :(得分: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();
}

} 

希望这会有所帮助。

答案 1 :(得分:1)

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

我猜你试图访问一个类的成员(可能是静态的),在这种情况下你会使用“。” - 运算符,如Mwesigye的回答中所示,或如下:

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