Newsgroup: it.comp.java
Titolo: riferimenti ad oggetti

ho un oggetto che al suo interno contiene l'istanza di altri oggetti:
public class Futenti {
 
    public ID_Utente cID_Utente = new ID_Utente();  //autonum
    public Utente cUtente 	= new Utente();
    public Descrizione cDescrizione = new Descrizione();
    public DataHlogon cDataHlogon = new DataHlogon();  //data ultimo
accesso
    public Computer cComputer 	= new Computer(); //computer ultimo
acceso
    public Note cNote 		= new Note(); 
 
    public Futenti() {
    }
 }
qualcuno sa dirmi come posso interrogare una istanza di Futenti per
ottenere il riferimento alle istanze degli oggetti in esso contenuti ?
ciao grazie

Ciao luciano996.
devi istanziare la classe per accedere ai dati.
//istanziazione
Futenti f = new Futenti();
//accesso ai memri pubblici
f.cID_Utente;
f.cID_Utente;


Ciao luciano996.
devi istanziare la classe per accedere ai dati.
//istanziazione
Futenti f = new Futenti();
//accesso ai membri pubblici
ID_Utente u = f.cID_Utente;
Descrizione d = f.cDescrizione;
cosě perň violi l'incapsulazione degli oggetti.
Ti consiglio di leggerti qualche tutorial-libro su java,
quello che chiedi č l'abc.
Ciao,
Kimbuba


 quello che chiedi è l'abc.


Ciao luciano996.
Probabilmente non avevo capito la tua domanda.
Sembrava che tu non sapessi come consultare la classe per utilizzare i 
campi pubbilci.
Scusami ma pensavo fossi nuovo su java.
L'incapusamento serve per evitare di accedere ai campi pubblici in modo 
indiscriminato.
Un livello di indirezione è necessario per la gestione ottimale delle 
classi.
prova a dare un'occhiata a 
http://www.java-net.it/jmonline/cap1/vantaggi2.htm
Per il resto non ho capito se stai facendo un framework per il data access.
Perchè dovresti usare la reflection?
Ciao,
Kimbuba


...


Ciao luciano996,
benvenuto nel mondo java.
Quello che cerchi di fare è molto comune.
Per queso ti consiglio di usare soluzioni già implementate.
Ti consiglio Ibatis che mappa value objects alle tabelle e quindi 
nasconde i comandi sql che metti in configurazione.
http://www.ibatis.com/
Oppure Hibernate che gestisce in trasparenza gli oggetti Database.
Con questo puoi programmare ad oggetti senza sacrificarne alcuna 
funzionalità lasciano la persistenza ad hibernate.
E' più compelsso del primo ma il migliore.
http://www.hibernate.org/
Spero di averti aiutato in qualche modo.
Ciao,
Kimbuba.


...


 > Kimbuba.
Ciao Kimbuba, potresti delucidarmi su alcuni termini che hai usato? Mi
potresti cioè spiegare cosa intendi con "livello di indirezione",
"mappa value objects" e con "persistenza"?
Grazie e ciao

Ciao Vjger.
Per livello di indirezione intendo un modo per riferirsi a qualcosa 
tramite altro.
Pensa ai metodi come guardie del corpo, non puoi accedere direttamente 
al vip senza che qualcuno verifichi quelli che devi fare.
Questo sta alla base dell'incapsulamento. Incapsuli l'oggetto e questo 
sarà visibile solo a metodi pubblici che ne offrono le funzionalità.
I vantaggi sono molti:
-Possibilità di accedere a membri della classe tramite filtri.
-Possibilità di modificare la politica di accesso.
-Possibilità di evitare dipendenze sull'implementazione di una classe 
dai chiamanti (consentendo modifiche future senza dover modificare ogni 
singola classe).
-....
Puoi estendere poi l'indirezione su classi
-Possibilità di non dipendere su una particolare libreria
-...
Oppure addirittura ad applicazioni
-Possibilità  di introdurre livelli di astrazione logici.
-...
Insomma tutto il paradigma degli oggetti si basa sull'incapsulazione e 
l'indirezione.
mappa value objects alle tabelle:
Un value object è un bean che contiene dati. Questo si può associare ad 
una tabella. (mappaggio)
Ad esempio VO: Persona ---> tabella Persona
Un buon framework permette di codificare-decodificare l'oggetto nella 
sua relativa tabella.
Con persistenza intendo il sistema che stà alla base della salvaguardia 
dei dati. Ex Database,Filesystem,Ftp etc.
Per quello che ho scritto significava che puoi programmare ad oggetti 
per poi lasciare il compito di salvare l'oggetto in un dbms senza 
preoccupartene troppo e lavorare a basso livello.
In particolare non devi trasformare il concetto degli oggetti a quello 
relazionale.
Spero di essere stato abbastanza chiaro (credo di aver aumentato la 
confusione invece).
Sono concetti abbastanza vasti e difficili da spiegare in due parole.
Per fortuna sono concetti abbastanza diffusi per cui non dovrebbe essere 
difficile documentarsi, nel caso.
Ciao,
Kimbuba


 Kimbuba
Invece sei stato chiaro (aiutato anche dal fatto che già so cos'è l'incapsulamento)
Grazie mille e ciao
Vjger