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

Discussione: Il metodo super();

  1. #1

    Il metodo super();

    Cosa fa di preciso il metodo super(); ?


    Ho questa porzione di codice ma non capisco cosa faccia di preciso "super"

    codice:
    public function AmazonItem(itemId: String, name: String) {
    			//che cacchio fa super() ???
    			super(itemId);
    			
    			//bohhh???
    			this.name = name;
    			
    			//Passa alla classe AmazonService i dati da mettere nella funzione getItemInfo
    			AmazonService.getItemInfo(itemId, this);
    		}

    MMmm sto cercando su vari libri che ho di flex, ma non ne riesco ad uscire fuori.


    :master:

  2. #2
    argh...centra qualcosa con le classi, me l'avevano spiegato :asd:
    Se non dico una cacchiata lancia la funzione di costruzione della classe che si sta estendendo.

  3. #3
    Da quanto ho capito interagisce con i metodi della classe nativa da cui si è estesa quella attuale.

    Ovvero

    Se B extend A all'interno di B uso dei comandi diretti di A


    MmmmM boh

  4. #4
    super() (almeno in java), richiama il costruttore della classe superiore, il padre insomma.
    Presumo che in AS sia la stessa identica cosa.

  5. #5
    siii bravo è proprio così


    però non capisco cosa faccia super(itemId);

    Ovvero passandogli questo parametro (non so se si dice così) itemId che cosa fa?


    Ecco la porzione di codice che ho:


    codice:
    	
    		//funzione pubblica AmazonItem che accetta due argomenti di tipo stringa: "itemId" e "name"
    		
    		public function AmazonItem(itemId: String, name: String) {
    			//super() is used to execute the parent class contructor
    			super(itemId);
    			
    			//bohhh???
    			this.name = name;
    			
    			//Passa alla classe AmazonService i dati da mettere nella funzione getItemInfo
    			AmazonService.getItemInfo(itemId, this);
    		}

  6. #6
    Se gli passi un parametro, significa che chiama il costruttore della classe padre con quel parametro.
    Probabilmente perché quel costruttore farà qualcosa di diverso da quello di default, oppure quello di default è semplicemente non disponibile.

  7. #7
    E' reperibile una listra dei costruttori di quella classe padre? (Credo item)

  8. #8
    Devi vedere te nel codice.
    Devi vedere cosa estende la tua classe e successivamente andare a vedere che costruttori dispone quella classe.

  9. #9
    Eh mi ci sto impazzendo, devo capire che cosa fa questa porzione di codice che è in un file AmazonItem.as

    Praticamente sto usando un esempio di Mark Sheperd per l'utilizzo di una libreria che si chiama SpringGraph (per flex).

    Ho provato con i commenti a cercare di interpretare cosa faccia questo code


    codice:
    	 //Classe AmazonItem che estende la classe Item
    	public class AmazonItem extends Item
    	{
    		
    		//dichiarazione delle variabili Bindable
    		[Bindable]
    		public var name: String;
    		
    		[Bindable]
    		public var imageUrl: String;
    		
    		
    		//variabile di tipo XMLList		
    		private var similarProducts: XMLList;
    		//variabile di tipo Boolean
    		private var createSimilarsASAP: Boolean = false;
    		
    		
    		//funzione pubblica AmazonItem che accetta due argomenti di tipo stringa: "itemId" e "name
    		public function AmazonItem(itemId: String, name: String) {
    			//super() is used to execute the parent class contructor
    			super(itemId);
    			
    			//bohhh???
    			this.name = name;
    			
    			//Passa alla classe AmazonService i dati da mettere nella funzione getItemInfo
    			AmazonService.getItemInfo(itemId, this);
    		}
    		
    		public function getItemInfoResult(event:ResultEvent):void {
    			var info: XML = XML(event.result);
    			var ns:Namespace = info.namespace("");
    			this.name = info.ns::Items.ns::Item.ns::ItemAttributes.ns::Title;
    			this.imageUrl = info.ns::Items.ns::Item.ns::SmallImage.ns::URL;
    			similarProducts = info.ns::Items.ns::Item.ns::SimilarProducts.ns::SimilarProduct;
    			if(createSimilarsASAP)
    				createSimilars();
    		}
    		
    		
    		// funzione pubblica getItemInfoFault ...
    		public function getItemInfoFault(event:FaultEvent):void {
    			Alert.show("getItemInfoFault " + event.toString());
    		}
    		
    		
    		// funzione createSimilars...
    		
    		public function createSimilars(): void {
    			if(similarProducts == null) {
    				createSimilarsASAP = true;
    				return;
    			}
    			var app: AmazonDemo = AmazonDemo(Application.application);
    			app.createItems(similarProducts, this);
    			similarProducts = null;
    		}
    	}
    }

    MMMmmm non ci riesco proprio a capire super(itemId);

  10. #10
    ItemId è di tipo stringa (viene passato al costruttore di AmazonItem), quindi c'è sicuramente un costruttore della superclasse che avrà come parametro una stringa.
    Lo si vede dal fatto che viene richiamato proprio con "super(ItemId);"

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.