PDA

View Full Version : [java] nuovi tipi con le classi, help


freddy88
01-07-2010, 18:19
salve, ho un piccolo problema. istanzio una classe di nome esame per definire un nuovo tipo esame. se lo uso come una variabile tutto ok, se cerco di usarlo come un vettore di tipi esame mi da errore.

package javaapplication4;

/**
*
* @author Administrator
*/
import java.util.Scanner;
public class Main {

public static class esame{
private String i_nome;
private int i_crediti;
private int i_voto;

public esame(String nome,int crediti, int voto){
i_nome=nome;
i_crediti=crediti;
i_voto=voto;
}
public void set_esame(String nome,int crediti, int voto){
i_nome=nome;
i_crediti=crediti;
i_voto=voto;
}
public String get_nome()
{
return i_nome;
}

public int get_voto()
{
return i_voto;
}

public int get_crediti()
{
return i_crediti;
}

}



/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner in = new Scanner(System.in);
String nome;
int crediti,voto;
studente giovanni=new studente();
esame[] esami=new esame[10];

String stop="y";
while (stop == "y")
{
System.out.println("Scrivere il nome della materia:");
nome=in.nextLine();
System.out.println("Scrivere i crediti:");
crediti=in.nextInt();
System.out.println("Scrivere il voto preso:");
voto=in.nextInt();
esami[0].set_esame(nome, crediti, voto);
System.out.println("Aggiungere un altro? - y:n");
stop=in.next();

}
crediti=esami[0].get_crediti();
voto=esami[0].get_voto();
nome=esami[0].get_nome();
System.out.println(crediti + nome + voto);
}

}

__ZERO_UNO__
01-07-2010, 21:34
Oltre a istanziare l'array di reference esami devi istanziare gli oggetti di tipo esame (non necessariamente tutti ) utilizzando il costruttore, e lo devi fare prima di questa istruzione :
esami[0].set_esame(nome, crediti, voto);.
Ti consiglio di studiarti le basi di Java SE.
Ciao

freddy88
02-07-2010, 09:13
non mi è molto chiaro quello che hai scritto :) ho risolto però creando un'altra variabile esame dove metto l'input da tastiera e poi copio la variabile in esame[0].

per il manuale non ne ho trovato nessuno che parte realmente da 0 e sopratutto in italiano...su tutti i linguaggi si trovano manuali e libri in italiano, col java di valido sta solo in inglese

pernacentus
02-07-2010, 11:53
non mi è molto chiaro quello che hai scritto :) ho risolto però creando un'altra variabile esame dove metto l'input da tastiera e poi copio la variabile in esame[0].

per il manuale non ne ho trovato nessuno che parte realmente da 0 e sopratutto in italiano...su tutti i linguaggi si trovano manuali e libri in italiano, col java di valido sta solo in inglese

Con
esame[] esami=new esame[10]; tu crei un array predisposto a contenere 10 oggetti esame, ma non crei le istanze degli oggetti contenuti nell'array. Quindi all'interno del tuo while dovresti mettere
esami[0] = new esame(nome, crediti, voto);

Tra l'altro anche facendo così, non so se ti sei accorto, all'interno del ciclo viene sovrascritto ad ogni iterazione esami[0] e non andrai mai a riempire l'array.
Di manuali in italiano, mi sembra strano che non ne abbia trovati. Se vuoi andare sul sicuro comprati un "Java Fondamenti di programmazione" di Deitel&Deitel e vai sul sicuro.

freddy88
02-07-2010, 12:28
Con
esame[] esami=new esame[10]; tu crei un array predisposto a contenere 10 oggetti esame, ma non crei le istanze degli oggetti contenuti nell'array. Quindi all'interno del tuo while dovresti mettere
esami[0] = new esame(nome, crediti, voto);

Tra l'altro anche facendo così, non so se ti sei accorto, all'interno del ciclo viene sovrascritto ad ogni iterazione esami[0] e non andrai mai a riempire l'array.
Di manuali in italiano, mi sembra strano che non ne abbia trovati. Se vuoi andare sul sicuro comprati un "Java Fondamenti di programmazione" di Deitel&Deitel e vai sul sicuro.

corretto tutto, cmq intendevo manuali e libri gratuiti, se devo spendere 35 euro per ogni libro che mi serve devo aprire un mutuo...

nalsk
02-07-2010, 18:28
Guarda se vuoi un'infarinatura sulle basi della programmazione in java c'è sempre il vecchio html.it che, in base alla mia esperienza ed interessi, con le sue piccole e semplici guide non ha mai deluso. Ovviamente non bastano i soliti manuali gratuiti per acquisire una certa dimestichezza col linguaggio, quindi appena hai qualche euro da spendere ti consiglio anchio il deitel&deitel, sarebbe certamente una spesa utile e sensata. :)