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?
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?
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?
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"
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...
e quindi cosa dovrei fare? un array anch'esso statico nella classe Studente, dove ogni elemento punta a un nuovo studente?
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"
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.
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; } }
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ò
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.