2015-11-29 17 views
5

Ich habe ein wenig Probleme mit einem Programm in der Schule.So rufen Sie eine Methode aus einer anderen Klasse ohne Konstruktor

Ich muss eine Methode namens factorial in meiner FactorialCalculator Klasse durch eine Methode namens factorial in meiner BCD Klasse aufrufen. Normalerweise würde ich so etwas tun:

FactorialCalculator newCalc = new FactorialCalculator(8); 

jedoch factorial ist die einzige Methode in der FactorialCalculator Klasse, und ich bin keine weiteren Methoden machen erlaubt, mit einem Konstruktor.

Irgendwelche Vorschläge?

+2

Wenn Sie es statisch machen, sollten Sie beachten, dass Sie keinen Standardkonstruktor erhalten, wenn Sie keinen Konstruktor definieren. – chrylis

Antwort

8

erstellen sie als statische Methode:

public class FactorialCalculator { 
    public static int factorial(int number) { 
     // Calculate factorial of number 
    } 
} 

Und Sie können es auf diese Weise nennen:

int factorial = FactorialCalculator.factorial(5); // for the example 

A statische Verfahren ist ein Verfahren, das nicht mit irgendeiner Instanz zugeordnet ist von jeder Klasse, & kann es unter Verwendung der Classname.staticMethod() Notation zugegriffen werden.

1

Wenn es eine statische Methode ist, würden Sie FactorialCalculator.factorial(...) tun.

3

Es ist einfach, wenn Sie es Static machen, können Sie es aus einer anderen Klasse aufrufen. Erstellen es als statische Methode:

class FactorialCalculator { 
    public static int factorial(int number) { 
     ...YourCode... 
    } 
} 

Und Sie können es so nennen:

int number = 10; 
int f = FactorialCalculator.factorial(number); 
1

Sie können entweder einen Standard-Konstruktor verwenden, die nur FactorialCalculator fc = new FactorialCalculator(); ist. Einfach so. Es sieht jedoch so aus, als ob Ihr Lehrer möchte, dass Sie eine statische Methode erstellen. Statische Methoden sind wie Dienstprogramme einer Klasse, anstatt eine Funktion eines Objekts zu sein. In Ihrem Fall sollten Sie FactorialCalculator also eher zu einer Dienstprogrammklasse als zu einer Objektklasse machen. public static int factorial(int num) {} sollte den Trick machen. Auf diese Weise können Sie einfach wie in Ihrem Beispiel FactorialCalculator.factorial(5) gehen.

Hoffe, das hilft!

1

Zuerst haben Sie immer den Standardkonstruktor, der keine Parameter akzeptiert. So können Sie FactorialCalculator instatieren und dann seine faktorielle -Methode aufrufen.

Verwandte Themen