Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Abbiamo provato le nuove CPU Intel Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: più core e ottimizzazioni al funzionamento interno migliorano le prestazioni, anche in virtù di prezzi annunciati interessanti. A questo si aggiungono nuove ottimizzazioni software. Purtroppo, a fronte di prestazioni di calcolo elevate, il quadro rimane incerto nel gaming, dove l'andamento rimane altalenante. Infine, rimane il problema della piattaforma a fine vita.
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Nothing con il suo nuovo Phone 4(a) conferma la sua identità visiva puntando su una costruzione che nobilita il policarbonato. La trasparenza resta l'elemento cardine, arricchita da una simmetria interna curata nei minimi dettagli. Il sistema Glyph si evolve, riducendosi nelle dimensioni ma aumentando l'utilità quotidiana grazie a nuove funzioni software integrate e notifiche visive. Ecco tutti i dettagli nella recensione completa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-03-2009, 17: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, 18: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, 18: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, 19: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, 21: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, 11: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, 15: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, 16: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, 17: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 18:38. Motivo: "supporto covariante" non aveva un gran senso :D.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lav...
iPad 12 arriverà nel 2026 e sar&a...
AMD per il futuro dell'IA in Corea del S...
L'IA agentica incrementa il rischio cybe...
Rapporto Clusit 2026: finanza e infrastr...
Gli stessi sali che solidificano il tofu...
Il conflitto in Medio Oriente minaccia l...
OnlyFans, scomparso il proprietario Leon...
Le migliori offerte Amazon da leggere in...
Recensioni su Trustpilot non affidabili,...
Il CISPE denuncia Broadcom all'antitrust...
Il cyberattacco che negli Usa ha trasfor...
AI Grid Intelligent Orchestration, l'inf...
Roborock Qrevo CURV 2 Flow X: tecnologia...
Quanto viaggia il modem di iPhone Air? I...
300 GB di memoria RAM per le future gene...
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: 01:39.


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