Visualizzazione dei risultati da 1 a 10 su 10

Discussione: classi innestate

Visualizzazione discussione

  1. #7
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    315
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Se nel costruttore devi fare qualcosa di "particolare", allora ovviamente non può essere il costruttore di "default" !
    Forse inizio a capire...si spera almeno.
    Il pezzo di codice incriminato è questo:
    codice:
    public class Auto
    {
        private String statoMotore;
        
        public class Meccanico    
        {
            public void aggiustaMotore()
            {
                statoMotore = "buono";
            }
        }    
    }
    Io voglio utilizzare il metodo aggiustaMotore, anche perchè lo scopo è riparare l'auto.
    Così com'è, per definizione di classe innestata (e poichè non è statica), devo necessariamente creare prima un oggetto di Auto (e me ne frego di quello che fa il costruttore), poi un oggetto di Meccanico (e me ne frego anche qui di quello che fa il costruttore) e infine richiamo il metodo aggiustaMotore.
    Quindi andrebbero scritte queste righe:
    codice:
    Auto auto = new Auto();
    Auto.Meccanico meccanico = auto.new Meccanico();
    meccanico.aggiustaMotore();
    La classe innestata, inoltre, per definizione può accedere ai membri (anche quelli private) della classe che la contiene e quindi è lecita l'assegnazione che viene fatta a statoMotore all'interno del metodo aggiustaMotore.

    Tutto corretto?

    Quote Originariamente inviata da andbin Visualizza il messaggio
    Ma alla fine è tutto lì, non ci sono altre particolarità riguardo istanziazione, uso ecc... di ClasseNested.
    Ok, e se invece parliamo di classi statiche "normali" (cioè non innestate)? Cosa sono?
    Ultima modifica di newutente; 20-11-2014 a 18:23

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 © 2026 vBulletin Solutions, Inc. All rights reserved.