PDA

Visualizza la versione completa : [java] come la "struct" del C


speriamobene
14-10-2004, 11:05
vorrei unire diversi oggetti di tipo diverso (int, String) in un altro.

come si crea e come si assegnano/recuperano i valori degli oggetti contenuti?

Fox82
14-10-2004, 12:18
Potresti creare una classe con tutti i membri pubblici: in effetti nel C una struct è più o meno quello.

Esempio:



public class Uomo
{
public String nome;
public int eta
}

...

Uomo p = new Uomo();
p.nome = "Pippo";
p.eta = 30;



In alternativa crei una classe con tutti i membri privati e per ogni membro un metodo get e set per recuperarli e modificarli, in cui puoi eventualmente inserire controlli

Esempio:



public class Uomo
{
private String nome;
private String eta;

public String getNome()
{
return nome;
}

public void setNome(String n);
{
// Se vuoi puoi inserire qui eventuali
// controlli sulla stringa in input
nome = n;
}

public int getEta()
{
return eta;
}

public void setEta(int e);
{
// Se vuoi puoi inserire qui eventuali
// controlli sulla stringa in input
eta = e;
}
}


In più potresti creare dei costruttori a cui passare tutti o parte dei dati

:ciauz:

alka
14-10-2004, 12:35
Credo che la creazione di una classe come suggerito sia l'unico modo.

Tuttavia, devi tenere sempre a mente che si tratta di una classe e pertanto devi crearla prima di utilizzarla e tenere a mente che la variabile del tipo creato è un riferimento; in definitiva, non è la stessa cosa delle strutture C.

In altri linguaggi, ad esempio C#, è possibile creare strutture utilizzando la parola chiave struct che agiscono come valore e si comportano in modo più simile alla controparte C.

Ciao! :ciauz:

netarrow
14-10-2004, 16:47
non ci sono le struct, un modo per fare una cosa simile è usare membri statici così non serve creare l'oggetto:



class struttura {
public static String dato1 = "";
public static int dato2 = 0;
//...
}


per recuperare basterà:



String data = struttura.dato1;
struttura.dato2 = 5;


:ciauz:

alka
14-10-2004, 16:51
Originariamente inviato da netarrow
non ci sono le struct, un modo per fare una cosa simile è usare membri statici così non serve creare l'oggetto
...ma in questo modo, si potrà disporre di una ed una sola struttura di questo tipo.

netarrow
14-10-2004, 16:56
Originariamente inviato da alka
...ma in questo modo, si potrà disporre di una ed una sola struttura di questo tipo.

esatto, se ha la necessità di crearne di più è da creare l'oggetto e senza usare static.
Altre soluzioni non mi vengono.


P.S
Non vorrei sbagliarmi, ma in java 1.5 è stata aggiunta una cosa simile alle struct.

:ciauz:

alka
14-10-2004, 17:06
Originariamente inviato da netarrow
Non vorrei sbagliarmi, ma in java 1.5 è stata aggiunta una cosa simile alle struct.
Ti dirò, avevo questa sensazione anche io. Ho approfittato di questa domanda per controllare...ma non ho trovato nulla. :(

speriamobene
17-10-2004, 14:59
Originariamente inviato da netarrow
esatto, se ha la necessità di crearne di più è da creare l'oggetto e senza usare static.


ovvero devo creare la classe, giusto?
intendi questo x "oggetto" vero?

netarrow
17-10-2004, 15:08
Originariamente inviato da speriamobene
ovvero devo creare la classe, giusto?
intendi questo x "oggetto" vero?

per oggetto intendo esistenza fisica in memoria di un tipo di dato che istanzia un astrazione logica quale la classe.
Se a te basta solo una "struttura" puoi usare i membri static e non creare l'oggetto, se ci devono essere più "strutture" devi instanziare l'oggetto con new.

:ciauz:

Loading