2008-10-21 9 views
2

En Ruby, j'ai souvent écrit un certain nombre de petites classes, et j'ai organisé une classe principale pour que les petits garçons travaillent. Je le fais en écrivantComment "requérir" une classe voisine en Java?

require "converter.rb" 
require "screenFixer.rb" 
. 
. 
. 

en haut de la classe principale. Comment est-ce que je fais cela en Java? Est-ce "importation"?

De plus, quelqu'un pourrait-il trouver un meilleur titre pour cette question?

Répondre

6

Si vous voulez dire que vous allez écrire du code qui utilisera une autre classe. Oui, vous devrez importer ces classes en utilisant une instruction import.

à savoir

package com.boo; 

import com.foo.Bar; 

public class StackOverflow { 

private Bar myBar; 

} 
+0

Vous avez répondu à la question! Si la classe d'aide est dans le même paquet que la classe de façade je peux juste dire barre privée myBar; et je me reçois un nouveau bar? – Ziggy

+0

Si vous souhaitez instancier la classe, vous devrez utiliser le constructeur. myBar = nouvelle barre(); Vous voudrez peut-être trouver quelques tutoriels Java sur le net pour vous aider à démarrer. – Feet

+0

Dans cet exemple particulier, l'importation est redondante car les classes se trouvent dans le même package. –

0

Vous possédez-vous pas importer les fichiers * .java en java. Au lieu de cela, vous aimez comme ça.

javac file1.java file2.java file3.java 
java file1 
1

Si ces autres classes ne vont être utilisés par votre classe « principale », il y a deux options à considérer qui ne nécessitent pas l'importation:

  • Vous pouvez les faire des classes imbriquées statiques privées dans votre classe principale.
  • Vous pouvez les faire « paquet d'accès » (par défaut - aucun modificateur d'accès)

Si elles sont classes publiques ailleurs, cependant, vous aurez en effet besoin d'une importation (ou les qualifier complètement partout, mais c'est horrible).

1

vous devriez vraiment lire un peu sur la programmation orientée objet. Vous n'organisez pas les petits gars dans les grands gars faire du boulot.

Les classes contiennent des données et fournissent une méthode pour manipuler ces données de manière significative. Les données sont généralement des variables d'une autre classe, vous devez déclarer d'où vous les obtenez. Vous faites cette déclaration en spécifiant la déclaration d'importation.

BTW vous devez créer explicitement une instance de classe pour l'utiliser, par exemple appeler la méthode constructeur de la classe

package com.foo; 
import com.foo.Bar; 

public class StackOverflow { 

private Bar myBar; 
    public StackOverflow() { //this is a constructor of StackOverflow class 
     myBar = new Bar(); //i'm invoking constructor of Bar class 
    } 
} 
1

Si toutes les classes que vous écrivez sont dans le même package que vous n'avez pas besoin de quelque chose de spécial pour les utiliser . Si la classe A veut le service de la classe B alors dans la classe A, vous pouvez juste instancier un objet de B et appeler les méthodes de B que vous voulez.

Si les classes sont dans des emballages différents cependant, ou si vous utilisez des classes de tiers, vous aurez besoin une déclaration d'importation

import package.ClasName; 

en haut du fichier dans lequel vous faites référence à la classe.

Questions connexes