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

    [JAVA] - Chiarimenti su alcuni concetti...

    Salve colleghi...

    C'è qualcuno di così gentile che mi aiuta a chiarire i miei dubbi riguardo questi 2 quesiti:

    1) Supponiamo di avere il seguente codice:

    CLASS A { }
    CLASS B EXTENDS A {}

    Se scrivo: A a= new A(), sia il riferimento, sia l'oggetto sono A, mentre scrivendo B b=new B(), riferimento ed oggetto sono B, giusto? Se invece scrivo qualcosa del genere come: A a= new B(), il riferimento è alla superclasse A, ma in realtà l'oggetto è B, giusto? In questo caso vengono ereditate le caratteristiche (metodi) di A? Ho capito bene?

    2) Qualcuno può spiegarmi che significa SINGOLETTO? Nel senso che ho capito che si ha un SINGOLETTO quando si vuole creare un'unica istanza di quella classe, ma il concetto non mi è chiaro...

    Grazie anticipatamente a chi mi risponderà...

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [JAVA] - Chiarimenti su alcuni concetti...

    Originariamente inviato da Tidus84
    Qualcuno può spiegarmi che significa SINGOLETTO? Nel senso che ho capito che si ha un SINGOLETTO quando si vuole creare un'unica istanza di quella classe, ma il concetto non mi è chiaro...

    Grazie anticipatamente a chi mi risponderà...
    Intendi il Singleton?

    Ecco un esempio:

    codice:
    public class A {
      private static A a = null;  
    
      // costruttore PRIVATO
      private A() {}
    
      public static A getInstance() {
        return (a == null) ? (a = new A()) : a;
      }
    
      // altri metodi
      ...
      
    }
    
    ...
    ...
    
    A obj = A.getInstance();

    Il costruttore è privato, l'unico modo per istanziare questa classe è chiamare getInstance. getInstance controlla se il a vale null: se è così la classe viene istanziata, altrimenti si restituisce il riferimento all'istanza precedente. In questo modo getInstance restituirà SEMPRE lo stesso riferimento
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] - Chiarimenti su alcuni concetti...

    Originariamente inviato da Tidus84
    Se scrivo: A a= new A(), sia il riferimento, sia l'oggetto sono A, mentre scrivendo B b=new B(), riferimento ed oggetto sono B, giusto?
    Ok

    Originariamente inviato da Tidus84
    Se invece scrivo qualcosa del genere come: A a= new B(), il riferimento è alla superclasse A, ma in realtà l'oggetto è B, giusto?
    Ok

    Originariamente inviato da Tidus84
    In questo caso vengono ereditate le caratteristiche (metodi) di A?
    B eredita sempre da A tutti i membri (quelli ereditabili .. è chiaro) .... il fatto di ereditare non dipende dal tipo della variabile a cui assegni il reference all'oggetto B.
    Il tipo della variabile centra semmai con i metodi che sono invocabili sull'oggetto. Se la variabile è di tipo A allora puoi invocare solo metodi la cui signature è nota alla classe A. E qui entra anche in gioco il concetto di "override".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.