Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
POCO F9 Pro arriva sul mercato con l'obiettivo di portare prestazioni da smartphone top di gamma in una fascia di prezzo "più aggressiva", senza rinunciare a un comparto fotografico finalmente all'altezza. Dopo averlo testato sul campo, emerge uno smartphone molto più completo rispetto alla generazione precedente, ma anche con alcuni piccoli compromessi che diventano difficili da ignorare quando il prezzo di listino sfiora i 1.000 euro.
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Snapdragon Soung Gen 2 è la piattaforma Qualcomm per i dispositivi audio sempre più integrati nel mondo dell'intelligenza artificiale: al prorpio interno tanta potenza elaborativa per gestire al meglio le necessità d'uso dell'agentic AI
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
In occasione del proprio Snapdragon Summit Qualcomm annuncia i due nuovi chip per dispositivi mobile di fascia alta che entreranno nel mercato nel corso del 2027: tanta potenza a disposizione per elaborazioni di intelligenza artificiale sempre più complesse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-01-2012, 12: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, 13: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 5900X @ 4,7Ghz + Thermalright Phantom Spirit 120 SE / MB Asus X470-F Gaming / RAM 2x16GB DDR4 Corsair 3600 CL16 / VGA Sapphire RX 7900 XT Nitro+ / SSD Crucial T500 1TB + Samsung 970 Pro 512GB + Sandisk 960GB Ultra II / PSU FSP Hydro G PRO 1000W / Headset Kingston HyperX Flight
demos88 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2012, 14: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, 14: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 5900X @ 4,7Ghz + Thermalright Phantom Spirit 120 SE / MB Asus X470-F Gaming / RAM 2x16GB DDR4 Corsair 3600 CL16 / VGA Sapphire RX 7900 XT Nitro+ / SSD Crucial T500 1TB + Samsung 970 Pro 512GB + Sandisk 960GB Ultra II / PSU FSP Hydro G PRO 1000W / Headset Kingston HyperX Flight
demos88 è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2012, 14: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, 14: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, 16: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, 14: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


Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Opera: la VPN gratuita si accende in aut...
Giochi capaci di costruirsi in tempo rea...
Giochi DX11 su Intel Arc e Proton: le ot...
Bentley Torcal ufficiale: 876cv e ricari...
Counter-Strike 2: con poche modifiche, V...
Silent Hill potrebbe tornare al cinema c...
L'integrazione di ChatGPT su Siri è stat...
ASML: 'Non vendiamo assolutamente nulla ...
Anthropic limita Claude Opus 5.5 nello s...
Microsoft 365, l'Antitrust respinge le p...
SAP NOW AI Tour Milan: una giornata con ...
Quake Champions dice addio al free-to-pl...
Anker AeroClip 2, li indossi e dopo un p...
Notebook ASUS da gaming per il Back to S...
Auto elettriche UE al 21,7%: sorpasso si...
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: 21:07.


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