@schumy2000: Scusami se non ti ho risposto in quel topic. Solitamente quando chiedo qualcosa in questo forum rispondo sempre, anche solo per ringraziare, invece mi deve essere sfuggito perchè forse ero dal cellulare 
Comunque a parte questo, continua a non essermi molto chiara la differenza tra metodo statico e metodo non statico..
Mi rimangono alcuni dubbi:
- i campi di esemplare essendo privati, per funzionare in entrambe le classi, vanno dichiarate sia nella classe dei costruttori, sia in quella dei metodi giusto?
- Per la questione dei get e dei set.. Dite che mi basta il metodo dei get? Perchè prima facevo solo i get, ma se non sbaglio quando per esempio volevo mettere in ordine per cognome i dipendenti di una classe, se facevo (dipendente1.getStipendio()).compareToIgnoreCase(d ipendente2.getStipendio()), non funzionava..ed ero costretta ad usare "dipendente1.stipendio", cosa che funzionava solo se definivo i metodi set..
-Perchè nella classe "Palestra" riesco ad utilizzare per esempio "var.getName()" e non var.name? Nella classe Palestra1, ci sono sia i get che i set, uno funziona e l'altro no? :/
- Se la classe dei costruttori si chiama "Palestra1", e quella dei metodi "Palestra", devo usare/manipolare solo oggetti di tipo Palestra1, giusto? Allora a che mi serve un' altra classe "Palestra" dove ci sono solo i metodi se quei metodi li utilizzo comunque su oggetti di tipo Palestra1?
Adesso sto provando a modificare la classe Palestra,secondo le direttive richieste dalla professoressa.
Eccola:
CLASSE COSTRUTTORE
codice:
public class Palestra1 {
/**
* contiene il costruttore, i get e i set
*/
//costruttore oggetti della classe Palestra
public Palestra1(String cogn, String nom, String dat, String tip)
{
cognome=cogn;
nome=nom;
data=dat;
tipo=tip;
}
public String getSur()
{
return cognome;
}
public String getName()
{
return nome;
}
public String getDate()
{
return data;
}
public String getType()
{
return tipo;
}
public void setSur(String v)
{
cognome= v;
}
public void setName(String v)
{
nome= v;
}
public void setDate(String v)
{
data= v;
}
public void setType(String v)
{
tipo= v;
}
//campi esemplare
private String cognome;
private String nome;
private String data;
private String tipo;
}
CLASSE METODI
codice:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Palestra {
//POPOLAMENTO AUTOMATICO DELL'ARRAY
public Palestra1[] datiCollaudo()
{
Palestra1[] collaudo = new Palestra1[5];
collaudo[0]= new Palestra1("Panucci","Luigi","15/10/2012","A");
collaudo[1]= new Palestra1("Biffi","Andrea","22/11/2012","B");
collaudo[2]= new Palestra1("Ambruoso","Ugo","18/12/2012","C");
collaudo[3]= new Palestra1("Diana","Elena","04/010/2013","C");
collaudo[4]= new Palestra1("Giacchi","Maria","07/01/2013","B");
return(collaudo);
}
//Visualizzazione dell'array in forma tabellare
public void stampaTabellare(Palestra1[]v)
{
for(int i=0;i<v.length;i++)
{
System.out.println(v[i].getSur()+", "+v[i].getName()+
", "+v[i].getDate()+", "+v[i].getType()+ "\t");
}
}
//STAMPA NORMALE
public void stampa(Palestra1[]v)
{
for(int i=0;i<v.length;i++)
{
System.out.println(v[i].getSur()+", "+v[i].getName()+
", "+v[i].getDate()+", "+v[i].getType());
}
}
//ORDINAMENTO DELL'ARRAY IN BASE AL COGNOME
public void ordSur(Palestra1[]v)
{
Palestra1 temp;
for(int i=1;i<v.length;i++)
{
for(int j=i;j>0;j--)
{
if((v[j].getSur()).compareToIgnoreCase(v[j-1].getSur())<0)
{
temp=v[j];
v[j]=v[j-1];
v[j-1]=temp;
}
}
}
}
//TRASFORMO LA DATA(STRING) IN UNA VERA DATA
private Date trasf(String data)
{
Date c=null;
try{
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
c = sdf.parse(data);
}catch(ParseException ex){ex.printStackTrace();}
return (c);
}
//VISUALIZZAZIONE DEI DATI DELL'ISCRITTO
//IL CUI ABBONAMENTO SCADE PER PRIMO
public void scadenza(Palestra1[]v)
{
//creo un array di date
Date[] array = new Date[v.length];
for(int i=0;i<v.length;i++)
{
array[i]=trasf(v[i].getDate());
}
//confronto
Palestra1 min=null;
for(int i=0;i<array.length-1;i++)
{
if(array[i].compareTo(array[i+1])<0)
{
min=v[i];
}
else min = v[i+1];
}
System.out.println(min.getSur()+", "+min.getName()+
", "+min.getDate()+", "+min.getType());
}
//calcolo della percentuale dei diversi tipo di abbonamento
public void percAbbonamenti(Palestra1[]v)
{
int somma=0;
int contaA=0;
int contaB=0;
int contaC=0;
for(int i=0;i<v.length;i++)
{
if((v[i].getType()).equalsIgnoreCase("A"))
{
contaA++;
}
}
for(int i=0;i<v.length;i++)
{
if((v[i].getType()).equalsIgnoreCase("B"))
{
contaB++;
}
}
for(int i=0;i<v.length;i++)
{
if((v[i].getType()).equalsIgnoreCase("C"))
{
contaC++;
}
}
somma = contaA+contaB+contaC;
//calcolo la percentuale
double percentualeA = (100/somma)*contaA;
System.out.println("Abbonamenti A: "+percentualeA+"%");
double percentualeB = (100/somma)*contaB;
System.out.println("Abbonamenti B: "+percentualeB+"%");
double percentualeC = (100/somma)*contaC;
System.out.println("Abbonamenti C: "+percentualeC+"%");
}
//campi esemplare
private String cognome;
private String nome;
private String data;
private String tipo;
}
CLASSE COLLAUDO
codice:
import java.util.Scanner;
public class Palestra_tester {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int scelta;
Palestra1[] iscritti=null;
do
{
System.out.println("Scegli tra le seguenti operazioni: "
+"\n1.Popolamento array con dati da tastiera"
+"\n2.Popolamento array con dati di collaudo"
+"\n3.Visualizzazione dell'array in forma tabellare"
+"\n4.Ordinamento dell'array in base al cognome"
+"\n5.Visualizzazione iscritto con scadenza abbonamento più vicina"
+"\n6.Calcolo della percentuale dei diversi tipi di abbonamento"
+"\n7.Termina programma");
scelta=in.nextInt();
switch(scelta)
{
case 1:
System.out.println("QUANTI ISCRITTI VUOI INSERIRE?");
int num = in.nextInt();
iscritti = new Palestra1[num];
for(int i=0;i<iscritti.length;i++)
{
System.out.println("Cognome iscritto "+(i+1)+": ");
String surname = in.next();
System.out.println("Nome iscritto "+(i+1)+": ");
String name = in.next();
System.out.println("Data iscrizione "+(i+1)+": ");
String data = in.next();
System.out.println("Tipo abbonamento "+(i+1)+": ");
String tipo = in.next();
Palestra1 oggetto = new Palestra1(surname,name,data,tipo);
iscritti[i]=oggetto;
}
break;
case 2:
System.out.println();
System.out.println("STAMPA DATI COLLAUDO");
iscritti= Palestra.datiCollaudo();
Palestra.stampa(iscritti);
break;
case 3:
System.out.println();
System.out.println("VISUALIZZAZIONE ARRAY FORMA TABELLARE");
Palestra.stampaTabellare(iscritti);
break;
case 4:
System.out.println();
System.out.println("ORDINAMENTO PER COGNOME");
Palestra.ordSur(iscritti);
Palestra.stampa(iscritti);
break;
case 5:
System.out.println();
System.out.println("ABBONAMENTO CON SCADENZA PIU' VICINA");
Palestra.scadenza(iscritti);
break;
case 6:
System.out.println();
System.out.println("PERCENTUALE DEGLI ABBONAMENTI");
Palestra.percAbbonamenti(iscritti);
}
}while(scelta!=7);
System.out.println("Programma terminato!");
}
}
Ovviamente la classe di collaudo contiene errori. Non riesco a capire come utilizzare i metodi creati.. Se ho "Palestra.ordSur(iscritti)" dovrei chiamarlo con "ordSur(iscritti)" o iscritti.ordSur(), ma non va :/