Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-07-2008, 23:24   #1
Johnn
Senior Member
 
Iscritto dal: May 2004
Messaggi: 1136
[Java] Uso di eccezioni nei costruttori e metodi get/set

Poniamo che una classe A abbia un costruttore nel quale un'istruzione può sollevare un'eccezione magari perché un parametro passato in input per essere assegnato ad una variabile ha un valore non valido.

1) Immagino che sia meglio gestire l'eccezione direttamente all'interno del costruttore, giusto (nel codice seguente si deve inserire un blocco try catch)?

Codice:
class A {
   private int n;

   public A(int n){
      if(n<0)
         throw new MyException();
      else
         this.n = n;
   }
}
2) E' meglio usare un eventuale metodo setN nel costruttore invece del codice postato sopra?
2a) Nel caso affermativo, l'eccezione verrebbe sollevata dal metodo getN e nel costruttore dovrebbe essere solo gestita, giusto?

3) Ma è buona norma usare sempre e comunque i metodi get e set all'interno dei metodi di una classe per accedere agli attributi della stessa, anche nel caso non debbano essere fatti controlli su di essi? Non si avrebbero inutili cali di prestazioni (frequenti chiamate a funzione solo per accedere ad attributi della classe)?

Grazie.
Johnn è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2008, 15:33   #2
demos88
Senior Member
 
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
in simili casi credo sia più una scelta di stile. Se la tua applicazione o classe non dovrà essere sviluppata oltre e quindi non prevede altre funzioni, potrebbe anche stare così. Però io personalmente preferisco definire dei metodi di get e set per le variabili che possono necessitare di modifica in fase di esecuzione. Se poi dovrai sviluppare l'applicazione ti può tornare molto utile l'avere disponibili già dei metodi intuitivi per quella variabile.
La mia filosofia, che credo sia quella generale delle classi, è la possibilità di essere riutilizzate nei più disparati ambiti, e funzioni di setting e getting permettono una migliore "interattività" dell'oggetto.
Il calo di prestazioni è praticamente nullo in questo caso.
__________________
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 05-07-2008, 16:28   #3
Mixmar
Senior Member
 
L'Avatar di Mixmar
 
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
Aggiungo un'altra cosa alle osservazioni di demos88 che sostanzialmente condivido: se per caso la tua classe dovesse diventare un bean, sarebbe opportuno gestire le eccezioni all'interno dei getter e setter anzichè all'interno del costruttore con i parametri.

Questo perchè una classe bean viene tipicamente istanziata tramite la Reflection, cioè utilizzando il metodo "newInstance" che invoca il costruttore vuoto della classe, e poi invoca i setter di tutti i campi dichiarati: quindi significa che eventuali controlli effettuati nel / nei costruttore / i con parametri sarebbero di fatto ignorati in questo caso.
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur
Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N
Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN
Mixmar è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2008, 20:19   #4
Johnn
Senior Member
 
Iscritto dal: May 2004
Messaggi: 1136
Ok, grazie ancora.
Johnn è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
Il satellite spia russo Olymp-1 si &egra...
Rocket Lab prosegue l'assemblaggio del n...
Il Wet Dress Rehearsal della missione Ar...
31,4 Tbps: Aisuru sfonda il suo stesso r...
Giocattoli AI, una falla espone oltre 50...
OPPO Reno15 in viaggio con Gaia Gozzi: i...
Nuove revisioni per Abarth 600e: arrivan...
Intelligenza artificiale, re-training e ...
LG presenta a ISE 2026 la nuova serie di...
Alienware: disponibile in Italia il nuov...
Arrivano le bodycam sui treni di Ferrovi...
Nike taglia 775 posti negli USA: l'autom...
Crimson Desert si mostra in un nuovo gam...
Addio transistor? Questo dispositivo usa...
Jensen Huang: le fabbriche negli Stati U...
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: 22:27.


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