Autore Topic: ArrayList  (Letto 145 volte)

Offline Nikococo93

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p8 lite
  • Sistema operativo:
    Android
ArrayList
« il: 04 Novembre 2016, 12:39:11 CET »
0
Salve ragazzi in pratica ho questa arraylist:
 ArrayList<Lavoratore> listaLavoratori = new ArrayList<Lavoratore>();

        Impiegato imp = new Impiegato();
        Capo cap = new Capo ();
        Boss bos = new Boss();
        Manager mana = new Manager();
        Presidente pres = new Presidente();

        listaLavoratori.add(imp);
        listaLavoratori.add(cap);
        listaLavoratori.add(bos);
        listaLavoratori.add(mana);
        listaLavoratori.add(pres);

        for (int i=0; i <=5; i++){
       
        }
e una textview risultato dove devo visualizzare i risultati
mi serve visualizzare un arraylist di tutti gli stipendi dei lavoratori (sapendo che ho 5 classi ognuno per un lavoratore,e che ho un metodo che mi calcola 1000(quota fissa) * Una percentuale sempre fissa dettata da me...
la mia domanda è : come faccio a farmi stampare i vari risulati dell'ArrayList in queto modo:
Stipendio   3000
Stipendio   5000
Stipendio   6000
i numeri ripeto sono calcolati da un metodo nella Classe principale che si chiama Lavoratore...

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 580
  • Respect: +130
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:ArrayList
« Risposta #1 il: 04 Novembre 2016, 16:57:45 CET »
0
Codice (Java): [Seleziona]
String report = "";
String sep = "";
for (int i=0; i < listaLavoratori.size(); i++){
        Lavoratore l = listaLavoratori.get(i);
        report = report + sep + "Stipendio " + l.getStipendio();
        sep = "\n";
}
textview.setText(report);
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline Nikococo93

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei p8 lite
  • Sistema operativo:
    Android
Re:ArrayList
« Risposta #2 il: 06 Novembre 2016, 20:29:26 CET »
0
scusami se ho risposto solo adesso,ma volevo inanzitutto ringraziarti per la tua sempre presente disponibilità.. e dopo porti un altro quesito se era possibile,
in pratica grazie al tuo aiuto ho risolto con l'ArrayList :) adesso in pratica dovrei aggiungere una nuova Classe che però ha un calcolo diverso dal resto...
ho pensato di creare un nuovo Metodo all'interno di questa classe che mi fa questa operazione : stipendiobase * fattorepercentuale * n(numero di giorni) / 5
la mia domanda è come lo riporto nella stampa questo metodo appena creato? sempre dentro l'ArrayList precedente? se non sono stato chiaro ti metto un frammento di codice qui sotto :

public class Presidente  extends Lavoratore {
    public Presidente() {
        super();
        fattorePercentuale = 10;
    }

    public Presidente(int fattorePercentuale, double stipendioBase) {
        super(fattorePercentuale, stipendioBase);
    }
come noterai la classe presidente ha un fattore percentuale fisso = 10

invece la Nuova classe che dovrò creare ha un operazione da fare ovvero quella che ti ho scritto prima :  stipendiobase * fattorepercentuale * n(numero di giorni) / 5
come posso creare un metodo al riguardo?
Grazie mille per la disponibilità

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 580
  • Respect: +130
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:ArrayList
« Risposta #3 il: 07 Novembre 2016, 10:35:57 CET »
0

Devi mettere un metodo nella classe base Lavoratore che effettua il calcolo completo dello stipendio, es calcolaStipendio

Codice (Java): [Seleziona]
public class Lavoratore {

  public int calcolaStipendio() {
    //Qui metti le operazioni necessarie al calcolo dello stipendio dei lavoratori
    int stipendio = getStipendio() * quello_che_ti_pare;
    return stipendio;
  }
}

Nella classe Presidente farai l'override di questo metodo:

Codice (Java): [Seleziona]
public class Presidente  extends Lavoratore {
  @Override
  public int calcolaStipendio() {
    //Qui metti le operazioni per lo stipendio del presidente
    int stipendio = getStipendio() * modificatore_presidente + stipendio_base;
    return stipendio;
  }
}

Adesso se fai

Codice (Java): [Seleziona]
Lavoratore l = new Presidente();
int risultato = l.calcolaStipendio();

lo stipendio viene calcolato usando Presidente.calcolaStipendio anche se è un'istanza di Lavoratore

P.S.: se per qualche ragione dalla classe Presidente devi calcolare lo stipendio come fosse un normale lavoratore, fai:

Codice (Java): [Seleziona]
public class Presidente  extends Lavoratore {
  @Override
  public int calcolaStipendio() {
    //La chiamata che segue usa il "calcolaStipendio" della classe "Lavoratore"
    int stipendio = super.calcolaStipendio();
    //Al risultato applico il "bonus presidente"
    stipendio = stipendio + bonus_presidente;
    return stipendio;
  }
}
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.