Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [JAVA 6] costruttore di una classe annidata

    Rieccomi, vorrei creare una classe annidata che estende un'altra classe e che deve passare un parametro al costruttore di quest'ultima. Qualcosa del genere insomma...

    codice:
    int x;
    
    new Pippo(x) extends Pluto {
    
         public Pippo(int x) {
              super(x);
         }
    
         @Override
         public void A() {
               ;
         }
    };

    dove A è un metodo di Pluto.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    E quale è il problema esatto?? (oltre al fatto che il codice postato sopra non è affatto corretto come sintassi .... e quindi non si capisce bene quale tipo di inner class intenderesti usare)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Originariamente inviato da andbin
    E quale è il problema esatto?? (oltre al fatto che il codice postato sopra non è affatto corretto come sintassi .... e quindi non si capisce bene quale tipo di inner class intenderesti usare)
    LoL ho dato per scontato che il problema era trovare la sintassi corretta.

    Comunque, se dovessi farlo in un file separato scriverei

    codice:
    public class Pippo extends Pluto {
    
        public Pippo(int x) {
            super(x);
        }
    
        @Override
        public void A() {
            super.A();
        }
    }

    se inveci volessi creare questa classe al volo in un altro metodo di un'altra classe...
    codice:
    public static void main(String[] args) {
        int x = 10;
    
        Object o = new Pippo() extends ....
    }
    Se po ffa?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da redcloud
    LoL ho dato per scontato che il problema era trovare la sintassi corretta.
    Ok ma allora dovevi specificare qualcosa in più. Esistono 4 tipi di classi "annidate" ed ognuna ha le sue regole e caratteristiche.
    Quindi non basta "chiedere" la sintassi corretta .... bisogna vedere in modo più preciso cosa devi fare e perché.

    Originariamente inviato da redcloud
    se inveci volessi creare questa classe al volo in un altro metodo di un'altra classe...
    codice:
    public static void main(String[] args) {
        int x = 10;
    
        Object o = new Pippo() extends ....
    }
    Potrei dedurre che vuoi fare quella che si chiama una "anonymous inner class".

    codice:
    Object o = new Pippo() {
        .....blabla.....
    };
    a) Non serve alcun 'extends' o 'implements'.
    b) Non può avere un costruttore esplicito, il costruttore è generato dal compilatore.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Si ok, ma io voglio che la classe anonima estenda un'altra classe.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da redcloud
    Si ok, ma io voglio che la classe anonima estenda un'altra classe.
    codice:
    Object o = new Pippo() {
        .....blabla.....
    };
    Definisce e istanzia appunto una classe "anonima" che estende Pippo (se Pippo è una classe).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Si ma ho bisogno di passare un parametro al costruttore della superclasse.

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da redcloud
    Si ma ho bisogno di passare un parametro al costruttore della superclasse.
    codice:
    Object o = new Pippo(argomenti ......) {
        .....blabla.....
    };
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Santoddio che stupido! Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.