Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1426 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  compilation de xxx.java et création de xxx$1.java et xxx$2.java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

compilation de xxx.java et création de xxx$1.java et xxx$2.java

n°401379
persepolis
Posté le 20-05-2003 à 15:33:59  profilanswer
 

Voila tout est dans le titre.
Merci pour vos explications ...

mood
Publicité
Posté le 20-05-2003 à 15:33:59  profilanswer
 

n°401400
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 20-05-2003 à 15:43:18  profilanswer
 

Classes internes [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°401420
persepolis
Posté le 20-05-2003 à 15:57:55  profilanswer
 

Taiche a écrit :

Classes internes [:spamafote]


A priori je n'ai qu'une classe dans mon .java :
 
public class JUploadApplet extends Applet {

n°401424
nero27
Posté le 20-05-2003 à 16:00:25  profilanswer
 

ça m'est déjà arrivé : jamais compris pkoi :??:


Message édité par nero27 le 20-05-2003 à 16:00:43
n°401457
the real m​oins moins
Posté le 20-05-2003 à 16:17:36  profilanswer
 

persepolis a écrit :


A priori je n'ai qu'une classe dans mon .java :
 
public class JUploadApplet extends Applet {

t'as surement une classe anonyme interne du genre
setWindowAdadpter(new WindowAdapter() {
     System.exit(0);
  }
}
 
d'ailleurs si elle etait pas anonyme le .class s'appellerait ClasseA$InnerClass.class


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°401469
bobuse
Posté le 20-05-2003 à 16:26:59  profilanswer
 

the real moins moins a écrit :

t'as surement une classe anonyme interne du genre
setWindowAdadpter(new WindowAdapter() {
     System.exit(0);
  }
}
 
d'ailleurs si elle etait pas anonyme le .class s'appellerait ClasseA$InnerClass.class


 
+1


---------------
get amaroK plugin
n°401596
darklord
You're welcome
Posté le 20-05-2003 à 17:30:23  profilanswer
 

persepolis a écrit :

Voila tout est dans le titre.
Merci pour vos explications ...


 
rien ne change à ce que je vois  :heink:


---------------
Just because you feel good does not make you right
n°401597
Cherrytree
cn=?
Posté le 20-05-2003 à 17:31:06  profilanswer
 

persepolis a écrit :

Voila tout est dans le titre.
Merci pour vos explications ...


De rien, C'était avec plaisir.


---------------
Le site de ma maman
n°401716
deltaden
Posté le 20-05-2003 à 20:29:19  profilanswer
 

the real moins moins a écrit :

t'as surement une classe anonyme interne du genre
setWindowAdadpter(new WindowAdapter() {
     System.exit(0);
  }
}
 
d'ailleurs si elle etait pas anonyme le .class s'appellerait ClasseA$InnerClass.class


+1

n°402065
persepolis
Posté le 21-05-2003 à 08:29:00  profilanswer
 

Je vous passe mon bout de code ...
Une petite précision:
xxx.java génère à la compil xxx.class xxx$1.class et xxx$2.class
 
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
 
public class xxxApplet extends Applet {
    //------------- INFORMATION --------------------------------------------
    public static final double VERSION = 2.0;
    public static final String AUTHOR = "Stephane PERDRIX";
    public static final String AUTHOR_EMAIL = "stephane.Perdrix@ipmfrance.com";
    public static final String DESCRIPTION = "Java Applet wrapper for JUploadPanel.";
    public static final String LAST_MODIFIED = "01 July 2002";
 
    public final static String DEFAULT_POST_URL = "http://localhost:8080/";
    public final static String DEFAULT_LOCAL_DIR = "D:/Stl/Client_Log/";
    public final static String DEFAULT_CIBLE_DIR = "D:/Stl/";
    public final static String DEFAULT_FICHIER_ZIP = "D:/Download/outfile.zip";
/*----------------------------------------------------------------------
  private static Logger log = Logger.getLogger(JUploadApplet.class.getName());
  //private static Logger log = Logger.getRootLogger();
------------------------------------------------------------------------ */
    //Get a parameter value
    private boolean isStandalone = false;
 
    public String getParameter(String key, String def) {
        return isStandalone ? System.getProperty(key, def) :
                (getParameter(key) != null ? getParameter(key) : def);
    }
 
    //Initialize the applet
    public void init() {
        // Getting Parameters.
        String postURL = this.getParameter("postURL", DEFAULT_POST_URL);
        String localDIR = this.getParameter("localDIR", DEFAULT_LOCAL_DIR);
        String cibleDIR = this.getParameter("cibleDIR", DEFAULT_CIBLE_DIR);
        String fileZIP   = this.getParameter("fileZIP", DEFAULT_FICHIER_ZIP);
        this.setLayout(new BorderLayout());
        //Essai de gestion des logs
 
        JTextArea status = new JTextArea(15, 10) {
            // Overwriting the default Append class such that it scrolls to the
            // bottom of the text. The JFC doesn't always rememeber to do that.
            public void append(String str) {
                super.append(str);
                super.setCaretPosition(super.getText().length());
            }
        };
        status.setBackground(new Color(229, 229, 229));
        status.setEditable(false);
        status.setLineWrap(true);
        status.setWrapStyleWord(true);
        JUploadPanel jp = new JUploadPanel(postURL, localDIR, cibleDIR, fileZIP, null,
                null, null, null, null, null, null, null, null, status, null, this);
        jp.addDoAfterUploadSucc(null);
 
        this.add(jp, BorderLayout.CENTER);
        /*status.append("INFO  : Post URL  = " + postURL + "\n" );
        status.append("INFO  : Local DIR = " + localDIR + "\n" );
        status.append("INFO  : Cible DIR = " + cibleDIR + "\n" );
        status.append("INFO  : Fichier ZIP = " + fileZIP + "\n" );
 try {
  getAppletContext().showDocument(new URL(getCodeBase()+"index.jsp" ));
 } catch (Exception e) {
  e.printStackTrace();
 }*/
 
    }
 
    public void stop() {
        System.out.println("INFO   : Methode STOP de l'applet\n" );
    }
 
    public void destroy() {
        System.out.println("INFO   : Methode DESTROY de l'applet\n" );
    }
}
 
J'vois que The dark n'a pas perdu sa forme légendaire...


---------------
Evite les personnes arrogantes et vulgaires, elles sont un tourment pour l'esprit.
mood
Publicité
Posté le 21-05-2003 à 08:29:00  profilanswer
 

n°402066
benou
Posté le 21-05-2003 à 08:31:48  profilanswer
 

t'as lu les réponses ? regarde ce que t'as du bobuse et compare avec ton code


---------------
ma vie, mon oeuvre - HomePlayer
n°402075
El_gringo
Posté le 21-05-2003 à 08:53:32  profilanswer
 

J'savais pas qu'on pouvait faire ça : surcharger une méthode d'une classe sans définir explicitement de nouvelle classe. ça peut servir ça, 'faut que je m'en rappelle.

n°402137
darklord
You're welcome
Posté le 21-05-2003 à 09:45:00  profilanswer
 

mais gros boolay on t'a déjà donné la réponse. Tu les lis les réponses au moins ou tu veux qu'on te donne le numéro de ligne plus explications?


---------------
Just because you feel good does not make you right
n°402201
bobuse
Posté le 21-05-2003 à 10:04:03  profilanswer
 

El_gringo a écrit :

J'savais pas qu'on pouvait faire ça : surcharger une méthode d'une classe sans définir explicitement de nouvelle classe. ça peut servir ça, 'faut que je m'en rappelle.


Ca s'apelle une classe anonyme, ca peut etre assez crade, mais ca peut etre aussi bougrement pratique ...
 
benou > c'est plutot taiche et -- qui ont repondu ;)


---------------
get amaroK plugin
n°402222
benou
Posté le 21-05-2003 à 10:12:05  profilanswer
 

bobuse a écrit :

benou > c'est plutot taiche et -- qui ont repondu ;)


ha oui ...

n°402350
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 21-05-2003 à 11:02:57  profilanswer
 

bobuse a écrit :


Ca s'apelle une classe anonyme, ca peut etre assez crade, mais ca peut etre aussi bougrement pratique ...


Typiquement les Adapter pour les interfaces graphiques ; t'as pas forcément envie de te taper une classe à part entière juste pour faire un System.exit(0) quand l'utilisateur ferme la fenêtre [:ddr555]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°402370
El_gringo
Posté le 21-05-2003 à 11:11:41  profilanswer
 

Taiche a écrit :


Typiquement les Adapter pour les interfaces graphiques ; t'as pas forcément envie de te taper une classe à part entière juste pour faire un System.exit(0) quand l'utilisateur ferme la fenêtre [:ddr555]  


 
Ouais, ou à la limite, pour des FilenameFilter. Enfin, typiquement, quand il y a une seule méthode à redéfinir, courte, et qui est spécifique, ça peut être utile. J'vais déja entendu parler des classes anonymes, mais sans savoir vraiment ce que c'était.
Donc les classes anonymes, c'est ça, et uniquement ça ?

n°402379
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 21-05-2003 à 11:14:33  profilanswer
 

El_gringo a écrit :


Ouais, ou à la limite, pour des FilenameFilter.


[:darklord]
Moi, le dernier FilenameFilter que j'ai fait, j'y ai foutu plein d'options et tout de façon à ce qu'il soit hyper générique et du coup j'le réutilise tout l'temps. Donc moyen pour une classe interne et carrément pas envisageable comme classe anonyme [:ddr555]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°402399
bobuse
Posté le 21-05-2003 à 11:21:41  profilanswer
 

Taiche a écrit :


[:darklord]
Moi, le dernier FilenameFilter que j'ai fait, j'y ai foutu plein d'options et tout de façon à ce qu'il soit hyper générique et du coup j'le réutilise tout l'temps. Donc moyen pour une classe interne et carrément pas envisageable comme classe anonyme [:ddr555]  


 
fais peter [:dawa]


---------------
get amaroK plugin
n°402402
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 21-05-2003 à 11:26:00  profilanswer
 

bobuse a écrit :


fais peter [:dawa]


J'le mettrai en ligne ce soir, si ça t'intéresse.
Il est d'ailleurs pas forcément optimisé au niveau du code, donc si y a quelqu'un qui se sent d'attaque pour trouver les merdes et me foutre la gueule dedans, ça s'rait sympa [:dawa] Pis j'apprendrai des trucs, comme ça :o
L'idée c'est que le machin accepte les * et tu peux gérer l'accept des répertoires. J'en avais pas trouvé sur le Net qui me satisfasse, mais si ça s'trouve ça existe depuis [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°402450
bobuse
Posté le 21-05-2003 à 11:42:34  profilanswer
 

lol, moi ca me fait penser que je m'etais fais ch*** aussi pour faire un composant graphique, et puis il a été ajouté qques mois aprés dans swing (ticker) :/


Message édité par bobuse le 21-05-2003 à 11:43:13

---------------
get amaroK plugin
n°402502
the real m​oins moins
Posté le 21-05-2003 à 12:03:46  profilanswer
 

bobuse a écrit :


benou > c'est plutot taiche et -- qui ont repondu ;)

j'allais le dire :o
 
benou[:tapai]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°402681
El_gringo
Posté le 21-05-2003 à 14:00:34  profilanswer
 

Taiche a écrit :


[:darklord]
Moi, le dernier FilenameFilter que j'ai fait, j'y ai foutu plein d'options et tout de façon à ce qu'il soit hyper générique et du coup j'le réutilise tout l'temps. Donc moyen pour une classe interne et carrément pas envisageable comme classe anonyme [:ddr555]  


 
Ouais, j'sais pas!
De toute façon, il sera forcément moins générique que l'interface FilenameFilter :D
Il fait le filtrage par expressions régulières ton FilenameFilter ?

n°402690
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 21-05-2003 à 14:06:03  profilanswer
 

El_gringo a écrit :


Ouais, j'sais pas!
De toute façon, il sera forcément moins générique que l'interface FilenameFilter :D
Il fait le filtrage par expressions régulières ton FilenameFilter ?


Bin j'voulais le faire mais fallait qu'il marche en 1.2 donc comme j'avais pas super envie de me retaper toute l'analyse du bordel, j'l'ai pas fait [:ddr555]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°403184
nraynaud
lol
Posté le 21-05-2003 à 16:39:41  profilanswer
 

El_gringo a écrit :


 
Ouais, ou à la limite, pour des FilenameFilter. Enfin, typiquement, quand il y a une seule méthode à redéfinir, courte, et qui est spécifique, ça peut être utile. J'vais déja entendu parler des classes anonymes, mais sans savoir vraiment ce que c'était.
Donc les classes anonymes, c'est ça, et uniquement ça ?


En plus de pas avoir de nom, elle est "inner", incluse dans une autre classe.  
Explication : toute instance de cette classe est liée à une (et une seule) instance de la classe qui l'enveloppe. Elle peut donc accéder à ce que l'instance de la classe enveloppante contient.
 
On est donc à 2 doigts des closures.
Une closure est un bout de codee qui peut accéder à l'ensemble de l'environnement où il est définit, tout en étant exécuté plus tard. Dans le cas ded java, l'environnement, c'est tout ce qui est statique (donc toujours accessible) et le contenu de l'instance courante et des instances "englobantes" pour les classes "inner".
 
Petite démo :  

Code :
  1. abstract public class Lazy {
  2.     public Object force() {
  3.         if (value == null)
  4.             value = expr();
  5.         return value;
  6.     }
  7.     public abstract Object expr();
  8.     private Object value;
  9. }


On a un bel outil (bon, pas typé, on verra ça dans la version 1.5 du langage) pour faire de la programmation fainéante.
 
 
 
une petite conversiont d'arbre acyclique en arbre possédant un pointeur sur le parent dans le style fonctionnel pour bien montrer la ressemblance avec http://forum.hardware.fr/forum2.ph [...] =1#t319874
 
un petit diagramme introductif :
http://nraynaud.com.free.fr/HFR/lazy.gif
 
Les LMachin sont les classes de l'abre de départ acyclique
Les Machin sont les classes de l'arbre d'arrivée avec pointeur sur les parents

Code :
  1. public class Test {
  2.     static Node convertNode(final Lazy parent, final LNode lnode) {
  3.         Lazy l = new Lazy(){
  4.             public Object expr() {return new Node(convertChild(this, lnode.child1), convertChild(this, lnode.child2), parent, lnode.val);}
  5.         };
  6.         return (Node)l.force();
  7.     }
  8. static Child convertChild(Lazy parent, LTree ltree) {
  9.         if (ltree instanceof LNode)
  10.             return convertNode(parent, (LNode) ltree);
  11.         else
  12.             return new Leaf(parent, ((LLeaf)ltree).val);
  13.     }
  14.     static Root convert(final LTree ltree) {
  15.         final Lazy l = new Lazy(){
  16.             public Object expr() {return new Root(convertChild(this, ltree));}
  17.         };
  18.  return (Root) l.force();
  19.     }
  20.     public static void main(String[] argv) {
  21.         LTree l = new LNode(new LLeaf(110), new LNode(new LLeaf(102), new LLeaf(103), 101), 2);
  22.  System.err.println(l);
  23.  System.err.println(convert(l));
  24.     }
  25. }


(code complet sur http://nraynaud.com/HFR )
Et voilà, un petit exemple de rapprochement entre 2 fonctionnalités assez distinctes.
 
Par contre, ATTENTION au mélange closures/effets de bord ! Les gens qui programment en O'caml le savent, en java faites gaffe (si vous avez la certitude d'avoir toujours accès à un objet de l'environnement, mais son état peut avoir changé depuis la définition de la closure et rendre le code de la closure plantageux).

n°403291
the real m​oins moins
Posté le 21-05-2003 à 17:37:06  profilanswer
 

[:wam]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°403312
El_gringo
Posté le 21-05-2003 à 17:56:14  profilanswer
 

Oui, bien sur, je suis entièrement d'accord ! :D

n°403314
bobuse
Posté le 21-05-2003 à 17:56:37  profilanswer
 

t'as des articles sur ce sujet, paske la moi je pige pas tout ... mais ca a l'air interessant :)


---------------
get amaroK plugin
n°403335
nraynaud
lol
Posté le 21-05-2003 à 18:14:44  profilanswer
 

bobuse a écrit :

t'as des articles sur ce sujet, paske la moi je pige pas tout ... mais ca a l'air interessant :)


java et lazy, non, je suis en train d'en écrire un.
je viens de trouver ça dans google :
http://www.javaworld.com/javaworld [...] tip67.html
 
les inner-class c'est dans la spec du langage (il doit y avoir des articles qui traînent aussi sur le net mais j'en ai jamais lu) : http://java.sun.com/docs/books/jls [...] tml#247506
 
Les concepts fainéans, des petites intros à des langages fainéans,
- le plus accessible, le module lazy de O'caml :
http://caml.inria.fr/ocaml/htmlman/libref/Lazy.html
- haskell :
http://www.haskell.org/tutorial/
- mercury :
http://www.cs.mu.oz.au/research/mercury/
 
 
Sur les closures et la lambda calcul, n'importe quelle doc sur un langage fonctionnel doit en parler.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  compilation de xxx.java et création de xxx$1.java et xxx$2.java

 

Sujets relatifs
Java et le suicide (j'en ai marre)[JAVA] detection d'utilisateur
[Java] Missing Return Statement ?! pkoi? [Résolu][java] expression reguliere
[java] un equivalent de fscanf en java ?JAVA 2D & scroller un JPanel
création de liens hypertextes[Java] Comment comparer les pixels d'une image
[JAVA]Prob avec un Canvas, un Menu, le tout dans une JAppletjava : probleme de creation du .bat de compilation et d'execution
Plus de sujets relatifs à : compilation de xxx.java et création de xxx$1.java et xxx$2.java


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR