Torna indietro   Hardware Upgrade Forum > Software > Programmazione

 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
OPPO ha appena lanciato sul mercato la nuova serie Find X10, che ha come smartphone premium il Find X10 Pro Max, uno smartphone completo, che fa del comparto fotografico il suo vero punto di forza. Ma sono tante le novità, tra cui l'AI che adesso diventa agentica. Ma andiamo a vedere nel dettaglio questo nuovo smartphone.
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
Abbiamo provato la beta di World of Warcraft: Forever, il Classic+ di Blizzard in arrivo il 4 novembre: la nuova razza Skyborne restituisce la sensazione di un gioco nuovo, ma le zone storiche conservano la noia divertita di Classic. Classi ribilanciate, sciamani anche nell'Alleanza e un motore grafico che in 4K gira bene anche su una RTX 3070. Cosa cambia in Forever? La risposta nell'articolo
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra abbina per la prima volta un pannello AMOLED alla tecnologia NXTPAPER con finitura opaca, affiancandoci una fotocamera periscopica da 50 MP con zoom ottico 3x, il SoC Dimensity 7400 Elite e una batteria da 5.800 mAh. Nella prova sul campo emergono luminosità di picco molto elevata, comparto fotografico solido per la fascia di prezzo e autonomia nella media, a fronte di velocità di scrittura dello storage piuttosto contenute
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-03-2009, 16:45   #1
*MATRIX*
Senior Member
 
Iscritto dal: Aug 2005
Messaggi: 439
[java] override metodi

ciao raga non sono molto pratico di java

mi potete dire se questo override è legale?

__________________
my pc :core duo2 e8500 ,asus rampage formula,corsair dominator 4giga, sapphire ati4870 512mb monitor samsung 22" t220hd vista 32bit
Nel corso della vita, non ci sarà certo penuria di gente che ti dice come vivere, avranno tutte le risposte, cosa dovresti fare, cosa non dovresti fare. Non ci discutere mai, tu di' sempre: «Ah sì? è un'idea davvero brillante» e poi fai come ti pare.(Woody Allen)
*MATRIX* è offline   Rispondi citando il messaggio o parte di esso
Old 27-03-2009, 17:31   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Non c'è sovrascrittura di metodi in quel diagramma. C'è invece sovraccaricamento (metodo con lo stesso nome ma lista di parametri diversa).
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 27-03-2009, 17:34   #3
*MATRIX*
Senior Member
 
Iscritto dal: Aug 2005
Messaggi: 439
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Non c'è sovrascrittura di metodi in quel diagramma. C'è invece sovraccaricamento (metodo con lo stesso nome ma lista di parametri diversa).
Come posso fare allora per definire il metodo press per ogni sottoclasse?
__________________
my pc :core duo2 e8500 ,asus rampage formula,corsair dominator 4giga, sapphire ati4870 512mb monitor samsung 22" t220hd vista 32bit
Nel corso della vita, non ci sarà certo penuria di gente che ti dice come vivere, avranno tutte le risposte, cosa dovresti fare, cosa non dovresti fare. Non ci discutere mai, tu di' sempre: «Ah sì? è un'idea davvero brillante» e poi fai come ti pare.(Woody Allen)
*MATRIX* è offline   Rispondi citando il messaggio o parte di esso
Old 27-03-2009, 18:04   #4
yorkeiser
Senior Member
 
L'Avatar di yorkeiser
 
Iscritto dal: Jul 2006
Città: Tristram
Messaggi: 517
Per override si intende definire un metodo con la stessa signature (ovvero nome e parametri in ingresso) della classe madre.
Quindi ti basta definire nelle classi figlie lo stesso IDENTICO metodo (in termini di signature ovviamente, il corpo sarà diverso, altrimenti non avrebbe senso ridefinirli) della classe madre, ovvero press()
__________________
Il sole è giallo
yorkeiser è offline   Rispondi citando il messaggio o parte di esso
Old 27-03-2009, 20:39   #5
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Quote:
Originariamente inviato da *MATRIX* Guarda i messaggi
Come posso fare allora per definire il metodo press per ogni sottoclasse?
Dipende da "quello che vuoi fare". Se vuoi invocare "il metodo giusto in base al tipo di argomento" allora la faccenda è interessante. Bisogna infatti tener conto che, in Java:

Codice:
class A {
	void metodo(Object arg) {
		System.out.println("object");
	}
}

class B {
	void metodo(String arg) {
		System.out.println("string");
	}
}

A a = new B();
a.metodo("hello world");
Stampa "object" e non "string".

Ciò avviene perchè la risoluzione del nome del metodo da invocare è determinata a tempo di compilazione in base ai metodi disponibili nel tipo in compilazione. A.metodo(una stringa) diventa il metodo(Object) dichiarato in A (ed esteso in B) perchè A non dichiara un metodo(String).

Una soluzione è:

Codice:
class Bottoni {
	void press(Object arg) {}
	void press(char c) {}
	void press(int i) {}
	void press(String s) {}
}

class BottoniAlfabetici {
	void press(char c) {}
}

class BottoniNumerici {
	void press(int i) {}
}

class BottoniOperazioni {
	void press(String s) {}
}
Qui hai sovrascrittura.

Bottoni x = new BottoniAlfabetici();
x.press(10); //-> invoca la definizione di press(int) data in BottoniAlfabetici

Esistono alternative più esotiche, ad esempio una mappa di funtori, o esoteriche, vale a dire l'invocazione riflessiva di metodi.

La prima cambia il design della tua gerarchia di tipi, la seconda non è neppure esprimibile in un diagramma di classi UML riferito a Java .
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2009, 10:36   #6
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
meglio lavorare con un interfaccia implementata da una classe delegate che si preoccupa di istanziare la classe giusta / il metodo giusto attraverso il pattern factory.

(se poi dovrai modificare qualcosa o aggiungere nuove implementazioni del metodo non dovrai modificare l'interfaccia, ma solo aggiungere una nuova classe e modificare il factory, disaccoppiando il resto dalle tue classi)
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2009, 14:32   #7
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
E come risolvi il problema dell'invocazione dinamica di un metodo sovraccaricato?
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2009, 15:55   #8
TorpedoBlu
Senior Member
 
L'Avatar di TorpedoBlu
 
Iscritto dal: Sep 2003
Città: Milano
Messaggi: 4623
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
E come risolvi il problema dell'invocazione dinamica di un metodo sovraccaricato?
la chiamata è wrappata apposta per non essere più il compilatore a scegliere.

cmq nel disegno il problema è che il metodo deve avere la stessa segnatura.

al massimo wrappi il parametro in ingresso
__________________
Ho trattato con : lahiri, czame, RC, allXXX, dfruggeri, JMM, Paperone, xej, Pappez, iperfly, Red81, Playmake, ryan78, Rob66, XP2200, Peach1200, faberjack, Stewie82, supermario_bros, hft500, Axelscorpio, pipes lee, Piccolospazio, RohanKish, miki66, kabira85
TorpedoBlu è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2009, 16:32   #9
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
In pratica ad un certo punto sei costretto ad una conversione esplicita.

Rinunciare al typesystem non è una buona idea. Tanto varrebbe usare uno script e rischiare di spararsi nei piedi ogni due enunciati.

Non che l'interfaccia sia una brutta idea, anzi. Bottone grida "interfaccia" in ogni direzione. Le factory poi in Java sono come la manna: risolvono il problema dei costruttori che non restituiscono istanze.

Qui il problema però è che A.press(T) è supposto covariante in B.press(V) per ogni B <: A e T <: V.

Mentre in Java è invariante.

Tra l'altro forse il problema è questo. Non ho ancora saputo se l'intenzione implicita è poter dire:

Bottone x = new BottoneNumerico();
x.press(10);

e non ottenere un lamento dal compilatore o se il problema sia un altro.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!

Ultima modifica di PGI-Bis : 03-04-2009 alle 17:38. Motivo: "supporto covariante" non aveva un gran senso :D.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita TCL P80 Ultra: con un display AMOLED opaco &egra...
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica NVIDIA RTX Spark: il PC Windows on ARM costruito...
Electronic Arts avvia una profonda riorg...
NVIDIA rilascia i driver 621.01: debutta...
Rowenta X-Clean 12: lavapavimenti con fu...
OPPO Enco X4 ufficiali: doppio driver Dy...
OPPO Find X10 e Find X10 Pro Max arrivan...
Recensione OPPO Enco X4: tecnologia da t...
Qualcomm, ricavi in calo e svolta verso ...
Blink Mini 4K+ e Pan-Tilt 2K+ in preordi...
Booking.com sotto indagine UE: nel mirin...
Generative Bionics apre la più gr...
Mercury 3 di Inception: 1 milione di tok...
RAM per portatili e PC all-in-one in off...
PHP, due falle critiche: patch alle 16 e...
ISRO sta proseguendo lo sviluppo della n...
Greenpeace interrompe il keynote di Jens...
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:31.


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