2016-12-25 7 views
-8

Beim Zugriff auf eine Funktion aus einer anderen Klasse in C++, können wir schreiben: classA :: fct();Was entspricht :: Operator in Java?

Gibt es in Java einen gleichwertigen Operator? Wenn nicht, wie können wir auf eine Funktion von einer anderen Klasse in Java zugreifen?

+0

C++ ist nicht Java. Schreiben Sie keinen Java-Code mit C++ als Modell. – PaulMcKenzie

+1

fast völlig verschiedene Sprachen, warum ordnen Sie diese beiden Sprachen – pankaj

+6

'.', Wie in 'java.util.Arrays.equals (x, y)'. – Amadan

Antwort

1

Nun der :: - Operator (Scope Resolution Operator) in C++ können Sie mehrdeutige Aufrufe/Referenzen auf Bezeichner auflösen. In Java gibt es jedoch keine unabhängigen Funktionen, da alle Funktionen tatsächlich Methoden (Mitglieder) einer Klasse sind. Als solche gibt es keine Notwendigkeit für diesen Operator, werfen Sie einen Blick auf here für Unterschiede zwischen Java und C++ Klassen. „“

Ich vermute, Sie ein Mitglied zuzugreifen versuchen (möglicherweise statisch) einer Klasse, in welchem ​​Fall Sie verwenden würde - Operator wie in Mwesigye Antwort exemplifiziert oder wie folgt:

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 
    } 
} 

Hier wird der "." - Operator verwendet, um printA() vom instanziierten Objekt myB (instanziiert von Klasse B) zu verwenden, um auf die statische Methode getInt() zuzugreifen, deren Implementierung an die Klasse A und nicht an irgendein Objekt gebunden ist von A. Weitere Informationen finden Sie unter here.

1

Nehmen Sie ein Beispiel für eine Klasse Student mit Methoden, was Sie Funktionen in C++ eg nennen.

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

} 

Hoffe, das wird helfen.