Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-07-2008, 22: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, 14: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 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 05-07-2008, 15: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, 19: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


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...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Intel: fine delle ricompense fino a 100....
Un problema alle turbopompe potrebbe ral...
Jensen Huang, NVIDIA: 'Nel 2030 non fini...
PC rincondizionato Lenovo ThinkStation a...
Il Neural Rendering di DLSS 5 gira (male...
AMD Radeon RX 9050 4GB, ecco quanto perd...
Factorio è certificato Steam Frame: la b...
TECLAST ArtPad è attualmente il m...
Bose aggiorna la sua gamma con due nuovi...
ID. Buzz, 100.000 km intorno al mondo se...
OpenAI: due computer isolati si parlano ...
Il caso del bambino che ha speso 118.000...
EPYC Venice contro Xeon e Vera: AMD pubb...
Apple potrebbe aumentare ancora i prezzi...
Il cervello di moscerino virtuale ha imp...
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: 08:56.


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