2013-09-07 8 views
-1

Je voudrais juste un exemple clair de la façon d'instancier une classe finale publique en Java. Je dois utiliser une méthode d'une classe comme celle-ci pour un projet, et je n'ai aucune idée de comment l'instancier en premier lieu. Très difficile de trouver un exemple clair et une explication de la syntaxe appropriée. Merci pour l'aide.Utilisation des classes finales publiques Java

+0

Voir http://stackoverflow.com/questions/5181578/use-of-final-class-in-java – user998692

+0

Ce qui rend vous pensez qu'il y a quelque chose de spécial à propos de la finale? Je veux dire, si vous avez juste essayé, vous auriez réalisé que cela fonctionne normalement ... –

+0

http://stackoverflow.com/help/asking –

Répondre

0
public class Test { 
    public static void main(String[] args) { 
     Project pro = new Project(); 
     pro.getName(); 

    } 
} 

final class Project{ 
    public String getName(){return "";} 
} 

===============================

peut être créé une classe finale comme un classe normale, seule chose est qu'il ne peut pas être étendu

+0

Hmmm ... Je ne sais pas pourquoi cet appel régulier ne fonctionne pas pour moi. Je n'ai pas de problème à créer une classe finale, c'est à peu près tout ce que les gens ont pu me montrer comment faire. J'ai un problème appelant cette classe. Pour une raison quelconque, mes instructeurs ont privé le constructeur de cette dernière classe, donc je ne peux pas simplement: "Project pro = new Project();" autre que de le faire, je n'ai aucune idée de comment appeler une classe. – NooberBLucky

+0

Dans le constructeur est privé, alors vous aurez une méthode statique publique comme getInstance(), qui retournera la référence de cette classe. vous pouvez utiliser cette méthode pour obtenir la référence d'objet. Probablement la classe sera singleton. Si vous le pouvez, partagez le code pour référence: Projet p = project.getInstance(); // le nom de la méthode peut varier selon votre implémentation – upog

+0

Ok cela ressemble à quelque chose d'utile ...pouvez-vous me montrer un exemple d'utilisation d'une méthode pour référencer une classe finale. J'ai essayé un certain nombre de syntaxe mais continue d'obtenir des erreurs dans mon contrôle d'erreur. La méthode dont j'ai besoin s'appelle public static int uniform (int N) et la classe est StdRandom. Donc j'essaie ceci: StdRandom.uniform (N) et il est faux StdRandom s = nouveau StdRandom (s.uniform (N)); "juste désespéré ici" int a = statique StdRandom.uniform (N); – NooberBLucky

0

Ceci est un exemple

public class del { 

    public static void main(String args[]) 
    { 
     x x1=new x(); 
     System.out.println(x1.u()); 
    } 

} 
final class x 
{ 

public String u() 
{ 
    return "hi"; 
} 
} 

Comme vous pouvez le voir, x est une classe finale et une méthode u qui renvoie une chaîne. J'instance x dans la classe del et j'appelle sa méthode u. La sortie est salut

Pour plus d'informations cliquez sur final

0
final class Test{ 
    public void callMe(){ 
    System.out.println("In callMe method."); 
    } 
} 


public class TestingFinalClass{ 
    public static void main(String[] args){ 
    Test t1 = new Test(); 
    t1.callMe(); 
    } 
} 

Sortie: In callMe method.

final en java est appliqué à la variable, méthode, classe

  1. variable final : la variable ne peut pas être signée avec une autre valeur.
  2. méthode finale: la méthode ne peut pas être surchargée.
  3. Classe finale: la classe ne peut pas être étendue.

Le meilleur exemple est la classe String dans Java. public final class String vous pouvez accéder aux méthodes de classe String comme d'habitude.
Quelques liens

0
public class Test { 
    public static void main(String[] args) { 
     StdRandom stdRandom = StdRandom.getInstance(); /* this will retun an instance of the class, if needed you can use it */ 
    int result =StdRandom.uniform(1); 
    System.out.println(result); 

    } 
} 

final class StdRandom{ 
    private static StdRandom stdRandom = new StdRandom(); 
    private StdRandom(){   
    } 
    public static StdRandom getInstance(){ 
     return stdRandom; 
    } 
    public static int uniform(int N){ 
     // Implement your logic here   
     return N; 
    } 
} 
+0

upog il n'y a pas de méthode getInstance() dans la classe, et je ne peux rien changer dans le fichier. Il n'y a pas non plus d'instanciation statique privée de stdRandom dans la classe finale. Est-ce la seule façon d'utiliser une méthode de cette classe. – NooberBLucky

+0

Il n'est pas obligatoire d'avoir une méthode qui retournera la référence de l'objet. Si la méthode que vous voulez utiliser est statique alors essayez ClassName.staticMethodName() cela devrait fonctionner, sinon postez votre code pour référence, pour commenter plus sur cela – upog

+0

Merci upog qui semble fonctionner .... Je ne comprends pas pourquoi , mais j'espère que je le ferai bientôt. Donc, pour cette classe finale, je n'ai pas besoin de l'instancier, et je peux juste appeler des méthodes de cette façon. Bon à savoir. – NooberBLucky

Questions connexes