Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [java] calcolare etàMedia()

    Ciao a tutti,
    mi stavo chiedendo una cosa. Se ho delle istanze dell'oggetto Studente e voglio calcolare l'età media, come faccio?
    dovrei avere un campo statico in studente...ma poi come si aggiorna?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    A meno che non faccio una classe che contiene un array di studenti...ma cosi si fa? e la programmazione a oggetti dove va a finire?

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    bhè, saprai tu come hai generato le varie istanze della classe studente e in che modo le stia gestendo.Onestamente, non ci vedo niente di male a creare un Vector (o direttamente un array) di Studente e quindi effettuare tutte le operazioni del caso.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    per me dovrebbe esistere un modo in base al quale la classe studente sa quante sue istanze sono in giro e puo accedere ai valori...

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    e quindi cosa dovrei fare? un array anch'esso statico nella classe Studente, dove ogni elemento punta a un nuovo studente?

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Noooo... nella struttura in cui crei l'insieme di studenti, dovresti avere implementato un sistema per gestire gli studenti.

    Ad esempio, se hai una classe Corso che istanzia gli iscritti (Studente), potresti avere un Vector, un array o un HashSet di Studente
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    qui non si tratta di java, ma di logica ad oggetti in generale:


    le soluzioni che hai detto tu sono mostruosamente blasfeme da questo punto di vista






    dunque: hai degli oggetti "Studente" con dentro un membro "eta"?
    benissimo, rendilo accessibile all'esterno (ergo fagli un get), e da una classe appositamente designata per contenere tutti gli "studenti" istanziati nella tua applicazione, fai enumerare la lista e somma il tutto.
    Se poi non hai nessuna classe che gestisca questi "studenti", e quindi hai tutte istanze sparate in giro nell'applicazione, allora il difetto condcettuale è ancora più profondo da sradicare: ti conviene studiare un pò di teoria della progettazione ad oggetti e rifare tutto.
    Ci sono cose che non si possono sapere. Per tutto il resto c'è man

    Prima di fare domande stupide: 1) googla 2) leggi le manpages 3) sparati.

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    ho implementato, quello che dicevo io, un sistema già dentro la classe studente che tenga il conto del numero di studenti creati.

    codice:
    public class ProvaStudenti{
    	public static void main(String[] args){
    		Studente.nuovo("Luca", 10);
    		Studente.nuovo("Anna", 20);
    		Studente.nuovo("Lara", 30);
            System.out.println(Studente.etàMedia());
            System.out.println(Studente.creati());
    	}
    }
    
    class Studente{
      public static double etàMedia;
      private static Studente[] array = new Studente[100];
      private static int index = 0;
      private int età;
      private String nome;
    
      public int getEtà(){
      	  return età;
      }
      
      public static int creati(){
    	  return index;
      }
    
      public Studente(String nome, int età){
        this.nome = nome;
        this.età = età;
      }
    
      public static void nuovo(String nome, int età){
       array[index] = new Studente(nome, età);
       index++;
      }
    
      public static double etàMedia(){
          int parx=0;
    	  for(int i=0; i<index; i++)
    	    parx += array[i].getEtà();
    	  return etàMedia = parx/index;
      }  
    }

  9. #9
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    funzionare funziona... dal punto di vista loghico però non mi sembra una buona scelta...
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    cioè...logicamente...se io ho un gruppo di studenti e non c'è nessuna relazione con altre classi...perchè devo fare in java due classi..una corso e una studente?
    c'è gia la possibilità, nel caso io voglio valori che si calcolano su tutti gli studenti, di dichiarare metodi statici che si applicano all'array e se voglio implementare metodi specifici della classe Studente, non li dichiaro come metodi static.

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