Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [OOP]Sottoclasse come array

    Ciao a tutti,
    ho costruito 2 classi, la classe 2 è una extends della prima. vorrei però capire se è possibile e come si può fare delle array della stessa sottoclasse?ovvero, se ho una classe "persona" che ha una sotto classe "maglione", come faccio a crea la persona con tre maglioni?

    Persona1->Maglione1->colore
    Persona1->Maglione2->colore
    Persona1->Maglione3->colore

  2. #2
    uhm..nesuno ha esperienza in tal senso?non ci credo!..help!!!


  3. #3
    tu sbagli approccio ^^

    l'oggetto persona è una cosa e l'oggetto magliore è un'altra cosa

    tu devi definire una proprietà maglioni nell'oggetto persona che contenga l'apposito array
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  4. #4
    grazie per l'iniziale aiuto...si sto ragionando come dici, nel senso che mi sono creato due classi "Persona" e "Maglione", poi ho definito un metodo in persona che crea l'oggetto maglione...solo che non comprendo come fare se voglio che maglione sia una collezzione di oggetti all'interno di persona

    se voglio fare
    Persona1->Maglione1->Proprietà
    Persona2->Maglione2->Proprietà

    non ci sono problemi, ma non riesco a capire come faccio a fare una collezzione di maglioni all'interno di una persona

  5. #5
    Come dice daniele dovresti definire la proprietà $maglione come array, definire poi un contatore e anche i vari metodi per aggiungere, togliere, modificare $maglione.
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  6. #6
    mi puoi fare un semplice esempio?perchè non credo che vada bene, in quanto maglione deve essere un'oggetto con le sue proprietà e i suoi metodi...utilizzando VB6 ad esempio tutto questo è possibile, ma si può con php senza usare la versione 5?se si, mi fate un esempio pratico?


  7. #7
    devi creare qualcosa tipo un "dizionario" su php

    se vuoi fare una cosa corretta a livello di OOP dovresti costruire una classe Collezione (o Collection, o più semplicemente una Lista) e definire tutti i metodi per aggiungere, rimuovere, inserire, contare e altro ancora ... e poi far contenere a questa collezione l'elenco dei maglioni

    una cosa tipo

    CollectionBase
    CollectionBase->MaglioneItemCollection
    MaglioneItem

    ovvero un oggetto ICollection che contiene tutta la base, l'oggetto MaglioneItemCollection che estende CollectionBase che gestisce una lista e che quindi ti permette di aggiungere, rimuovere ed inserire ... ed infine l'oggetto MaglioneItem che non è altro che il Maglione
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8
    la mia idea era una cosa tipo questa
    Codice PHP:
    class persona {

    var 
    $maglione = array();
    var 
    $count 0;

    function 
    addMaglione(){
        
    $this->maglione[$this->count] = new maglione();
        
    $this->count++;
    }
    function 
    setMaglione$param ){
        
    $this->maglione[$this->count-1]->setMaglione$param );
        
    $this->count++;
    }
    function 
    removeLastMaglione() {
        
    $this->count--;
         unset(
    $this->maglione[$this->count-1]);
    }
    function 
    showMaglioni(){
        foreach (
    $this->maglione AS $magl)
        {
        echo 
    $magl->getMaglione();
        echo 
    "
    "
    ;
        }
    }
    }
    class 
    maglione {
    var 
    $colore"rosso";
    function 
    setMaglione$param ) { $this->colore $param; }
    function 
    getMaglione() { return $this->colore; }
    }
    $you = new persona();
    $you->addMaglione();
    $you->addMaglione();
    $you->setMaglione("giallo");
    $you->showMaglioni();
    $you->removeLastMaglione();
    $you->showMaglioni(); 
    però lascio l'ultima parola a daniele che direi è più competente
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  9. #9
    cosi non ti conviene molto

    genera invece una classe CollezioneDiMaglioni dove esegui le operazioni di aggiunta e rimozione in modo che separi le funzionalità e li puoi anche avere maggiore flessibilità.

    Inoltre ti consiglio di dare la possibilità di dare un "nome" ai maglioni, ovvero una chiave di ricerca
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  10. #10
    Si Anªkin, credo che hai preso in centro la situazione..è l'esempio è ottimo..immagina che io dovrò creare una buona ramificazione dell'oggettoBase (questo oggetto contiene collezzioni di altri oggetti), nel senso che anche maglione avrà al suo interno ulteriori collezioni di altri oggetti..diciamo una specie di C: dove all'interno ho bisogno di inserire cartelle e svariate sottocartelle in cui all'interno ci sono le proprietà (ovvero i file).

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.