Ciao a tutti.
E' una settimana che mi sono imbattuto nel linguaggio java (chi me l'ha fatto fare?),
e sto seguendo un libro, iniziando dai primi esempi della programmazione ad oggetti java.
Come ambiente di sviluppo sto utilizzando eclipse.
Mi sono soffermato parecchio su questi concetti base, senza voler avanzare frettolosamente alle prime applicazioni hello world, perchè ritengo che sia meglio capire per bene il meccanismo e poi procedere per gradi.
Nonostante il libro sia ben fatto però, ci sono alcuni dubbi che non sono riuscito a togliermi e che, magari qualche anima pia se ne ha voglia, può chiarirmi.
Vi ringrazio anticipatamente per le eventuali risposte.
1) Perchè (o in quali casi) conviene inizializzare una variabile con istanza di un oggetto, se poi posso utilizzare il nome stesso dell'oggetto riducendo il codice da scrivere e l'incasinamento? Esempio:
Diciamo che ho una classe MiaClasse con un metodo che chiameremo MioMetodo(), e poniamo che in una seconda classe devo richiamare MioMetodo().
Perchè dovrei scegliere di istanziare prima l'oggetto MiaClasse (tipo i = new MiaClasse....)
quando io posso tranquillamente richiamare attraverso la sintassi i = MiaClasse.MioMetodo() ?? Non sarebbe più semplice e comprensibile così?
/********/
2) Sempre in merito alla dichiarazione e al richiamo di oggetti o metodi, non mi è ben chiaro l'elemento this, o meglio:
Innanzitutto da quello che ho capito, il membro dichiarato in un metodo, può essere richiamato soltanto all'interno del metodo stesso o in un metodo più interno.
Quindi se io ho il metodo A, e dentro c'è B e dentro a quest'ultimo c'è C io posso:
Richiamare in C un membro dei metodi A e B e C
Richiamare in B un membro dei metodi A e B
Richiamare in A un membro di A
A questo punto entra in gioco il This (che se non sbaglio è anche sottointeso giusto?);
se da C voglio chiamare un membro che non so dov'è, scrivo qualcosa tipo x = this.membro. Ok, ma se io ho due membri con lo stesso nome? cioè in A dichiaro int menbro, in B dichiaro float membro...come posso decidere di voler chiamare la variabile int e non quella float? e a tal proposito, se io dichiaro un membro in B con lo stesso nome di un altro membro in A (ma di tipo diverso ad esempio), il primo viene sovrascritto o restano due variabili differenti?
/************/
3)Ultima richiesta per ora, altrimenti perdete la pazienza e non mi rispondete più![]()
A che serve l'oggetto Stack (o Pila)? Per definizione, sul libro, c'è scritto che un oggetto a pila, è un contenitore di più valori dove l'ultimo valore ad essere inserito è il primo ad essere recuperato. Ok, ma a che serve se posso usare un array? l'array non è più comodo?
inserisco i valori che voglio e richiamo quelli che voglio. A che mi serve lo Stack?
Ecco per ora direi che può bastare così, poi magari chiedo qualcos'altro dopo queste delucidazioni...sempre se non abuso della vostra pazienza.
Un grazie di cuore a tutti.
Ciao