2016-12-25 6 views
-8

C++で別のクラスの関数にアクセスするときは、 と書くことができます:classA :: fct();javaの:: operatorに相当するものは何ですか?

javaに同等の演算子がありますか? もしそうでなければ、Javaの別のクラスからどのように関数にアクセスできますか?

+0

C++はJavaではありません。 C++をモデルとしてJavaコードを記述しないでください。 – PaulMcKenzie

+1

ほとんど完全に異なる言語ですが、どうして 'java.util.Arrays.equals(x、y)'のようにこれら2つの言語 – pankaj

+6

'.'をマッピングしていますか? – Amadan

答えて

1

C++の:: - 演算子(Scope Resolution Operator)では、あいまいな呼び出しや識別子への参照を解決できます。しかし、javaでは、すべての関数が実際にクラスのメソッド(メンバー)であるため、独立した関数はありません。そのようなので、この演算子の必要はありません、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()にアクセスするためにも使用されます。詳細はhereです。

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(); 
} 

} 

希望すると、これが役に立ちます。

関連する問題