Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-01-2012, 13:49   #1
Fire Fox II
Senior Member
 
L'Avatar di Fire Fox II
 
Iscritto dal: Nov 2000
Città: Salerno
Messaggi: 4338
[Java] Come ottenere riferimenti da altre classi...

Salve raga...

descrivo il mio problema...

Ho tre classi A, B, e C create in sequenza ognuna delle quali crea una nuova classe D... Quest'ultima però deve far riferimento ad un valore contenuto nella classe A...

Quindi come posso ( se posso ) chiamare da D il metodo della classe A inizialmente creata?

Thanks
__________________
Doc : "Ovviamente, il continuum temporale è stato interrotto creando questa nuova temporale sequenza di eventi risultante in questa realtà alternativa"
Marty : ...... "Che lingua è, Doc?!?"
Fire Fox II è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2012, 14:37   #2
demos88
Senior Member
 
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
Ma parli di classi o oggetti?
Da una classe istanzi un oggetto, per accedere a un metodo di un oggetto di A da dentro un oggetto D, D deve avere un riferimento ad A e chiami il metodo su quello.
Alternativamente puoi usare un valore statico in A, però il discorso è troppo generico, oltre che poco chiaro. Probabilmente scrivendo il programma in modo diverso risulta molto più semplice.
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight
demos88 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2012, 15:00   #3
Fire Fox II
Senior Member
 
L'Avatar di Fire Fox II
 
Iscritto dal: Nov 2000
Città: Salerno
Messaggi: 4338
Mi rendo conto di non essere una cima in quanto a spiegazioni...

Comunque stando al grafico qui di seguito, la creazione D dovrebbe stamparmi x... Possibile?

__________________
Doc : "Ovviamente, il continuum temporale è stato interrotto creando questa nuova temporale sequenza di eventi risultante in questa realtà alternativa"
Marty : ...... "Che lingua è, Doc?!?"
Fire Fox II è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2012, 15:21   #4
demos88
Senior Member
 
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
Sinceramente il grafico non è molto chiaro, dice tutto e niente, di fatto non descrive nulla del comportamento del programma...
Posso solo intuire che da una classe (probabilmente in un metodo static main) vengono creati 3 oggetti istanziandoli da A, B e C rispettivamente.
Poi dentro ad ognuno dei costruttori delle suddette classi, viene istanziato un oggetto dalla classe D.
La variabile "valore" che viene impostata a x, non appartiene alla classe A, ma alla classe nella quale viene eseguito il codice che istanzia A.
Qualcosa del genere insomma:
Codice:
A a = new A();
B b = new B();
C c = new C();
valore = x;
Poi nei costruttori di A, B e C c'è una istruzione che istanzia un oggetto di tipo D:
Codice:
D d = new D();
Io non so cosa facciano questi oggetti d (sono 3 in tutto, uno per a, uno per b e uno per c), ma se dentro a d vuoi avere un riferimento a "valore", devi o modificare i costruttori di A, B e C in modo che prendano come parametro un riferimento a "valore" (sempre se questo non è un tipo primitivo, che allora devi incapsulare in una classe) e che poi lo girano al costruttore di D; oppure se il metodo in cui crei a, b e c è statico, devi rendere "valore" un campo statico della classe e poi ti riferisci ad esso così: NomeClasse.valore .
Oppure ancora, se il metodo non è statico, passi ai costruttori di A, B e C un riferimento this, e prevedi un metodo di get. Esistono anche altre soluzioni, ma non so nulla del contesto, quindi è poco utile formulare altre ipotesi.
Comunque è troppo vago... è una esercitazione? un esempio?
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight
demos88 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2012, 15:34   #5
Fire Fox II
Senior Member
 
L'Avatar di Fire Fox II
 
Iscritto dal: Nov 2000
Città: Salerno
Messaggi: 4338
Mmmm, praticamente ho un JFrame principale con all'interno diversi pulsanti...

Ognuno di questi una volta premuto crea una nuova classe la quale usa D per connettersi ad un database... L'indirizzo del database però viene stabilito nella classe principale quindi dovrei fare in modo che D riesca a risalire a tale indirizzo...

Spero che spiegandolo così risulti più comprensibile...

Passare i riferimenti non è facile in quanto il percorso in alcuni casi potrebbe essere lungo... Però da quello che sto capendo mi sa che è l'unico modo...
__________________
Doc : "Ovviamente, il continuum temporale è stato interrotto creando questa nuova temporale sequenza di eventi risultante in questa realtà alternativa"
Marty : ...... "Che lingua è, Doc?!?"
Fire Fox II è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2012, 15:35   #6
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Detta così sembra un bel problema di disegno delle classi.
C crea D che deve accedere ad una variabile di A?
E se A non esistesse?

Una soluzione che non coinvolga il ridisegno completo delle classi (secondo me sarebbe la soluzione da seguire) potrebbe essere quella di far implementare ad A una interfaccia per la proprietà che interessa e passarla al costruttore di B, C e di conseguenza D.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2012, 17:47   #7
Fire Fox II
Senior Member
 
L'Avatar di Fire Fox II
 
Iscritto dal: Nov 2000
Città: Salerno
Messaggi: 4338
La classe contenente la variabile necessaria è quella principale e deve esistere per forza...

Ridisegnare le classi significa usare la soluzione proposta da demos88 che passi sempre il riferimento this?

Ma la classe principale non può creare un riferimento a cui possa accedere D ?
__________________
Doc : "Ovviamente, il continuum temporale è stato interrotto creando questa nuova temporale sequenza di eventi risultante in questa realtà alternativa"
Marty : ...... "Che lingua è, Doc?!?"
Fire Fox II è offline   Rispondi citando il messaggio o parte di esso
Old 29-01-2012, 15:17   #8
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Fire Fox II Guarda i messaggi
La classe contenente la variabile necessaria è quella principale e deve esistere per forza...
Nella programmazione ad oggetti non esiste il concetto del "deve esistere per forza"

Quote:
Ridisegnare le classi significa usare la soluzione proposta da demos88 che passi sempre il riferimento this?

Ma la classe principale non può creare un riferimento a cui possa accedere D ?
Se non ho capito male il tuo problema è l'aver legato troppo strettamente la GUI alla logica del programma.
Intanto come mai la stringa di connessione ce l'ha la classe principale?
Non potresti usare una classe con metodi statici per l'accesso alla configurazione? Immagino che la stringa di connessione sia una variabile configurabile del programma e non cablata nel codice, ma anche se lo fosse potresti incorporarla in una classe Configurations e imporre sul costruttore di D che debba essere passata la stringa di connessione (e se non viene fatto se la recupera da Configurations, diciamo che non è bellissimo ma può andare).

Dovresti (a questo punto direi per il prossimo progetto) separare la parte grafica dalla logica.
tomminno è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Le tute spaziali AxEMU di Axiom Space pe...
Dongfeng sfida la NATO: navi dalla Cina ...
5G Standalone per il mondo marittimo: Er...
Nova Lake-S: configurazioni fino a 52 co...
Baxi presenta la pompa di calore Alya E ...
PC ASUS e Acer vietati in Germania: il t...
Stellantis rilancia il diesel in Europa:...
Truffa per utenti Trezor e Ledger: lette...
Wi-Fi 7 conveniente: FRITZ! lancia 4630,...
La Formula 1 dei robot tagliaerba miglio...
Il nuovo gioco del creatore di God of Wa...
Grok arriva sulle Tesla in Europa: l'int...
Assassin's Creed IV: Black Flag Remake p...
Il padre di God of War attacca Sons...
È operativo il primo computer qua...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:03.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v