Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-07-2007, 17:04   #21
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
la a non compila perché il modificatore private abbassa la visibilità del metodo, la quale può essere solo alzata o mantenuta. la e invece non compila perché il prototipo del metodo differisce solo per il tipo del valore di ritorno: se una classe avesse due metodi identici differenti solo per il tipo di ritorno verrebbero a crearsi delle ambiguità nel codice che usa uno di quei due metodi: non sarebbe chiaro quale dei due si sta usando, e quindi di che tipo dovrebbe essere il valore di ritorno.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 09-07-2007, 17:12   #22
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
La covarianza del tipo restituito definisce come sovrascrittura la ridefinizione di un metodo del supertipo in un sottotipo che differisca per il tipo di valore restituito se questo sia compatibile in assegnamento con l'originale.

Cioè:

Codice:
class A {
    Number fai(int a, float b) { ... }
}

class B extends A {
    Long fai(int a, float b) { ... }
}
è valido.
__________________
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 09-07-2007, 17:17   #23
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Tony Hak Guarda i messaggi
l'evidenziatore verde è la risp corretta ..

perche' nn compilano e gli altri si ?
Il quiz che hai postato è relativo al concetto di override. Ci sono una serie di regole:

Il metodo che fa l'override (nella sottoclasse quindi)

1) deve avere la stessa identica signature (nome+parametri) e lo stesso valore di ritorno (con l'eccezione del return covariante di Java 5+, che riguarda solo i tipi reference).

2) non deve avere un livello di accesso più ristretto ma può avere un livello di accesso meno ristretto.

3) Non può dichiarare eccezioni checked nuove o più "ampie" ma può dichiarare meno eccezioni checked o eccezioni checked più ristrette. Può dichiarare qualunque eccezione unchecked.

4) Il metodo nella superclasse di cui si fa l'override non deve essere marcato private (altrimenti non viene ereditato) o final (altrimenti non può esserci un override).

Basandosi su queste regole:

La risposta a) non compila perché in Over il livello di accesso è il default e il private del override è più ristretto del default.
La risposta e) non compila perché il tipo di ritorno è diverso.

Le altre risposte compilano perché sono altri casi di override/overload corretti.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)

Ultima modifica di andbin : 09-07-2007 alle 19:20. Motivo: piccola correzione
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 09-07-2007, 18:18   #24
Tony Hak
Senior Member
 
L'Avatar di Tony Hak
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 1661
grazie del pronto intervento
__________________
Tony Hak è offline   Rispondi citando il messaggio o parte di esso
Old 09-07-2007, 20:40   #25
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
La covarianza del tipo restituito definisce come sovrascrittura la ridefinizione di un metodo del supertipo in un sottotipo che differisca per il tipo di valore restituito se questo sia compatibile in assegnamento con l'originale.
e long è compatibile con int in assegnamento? se non erro in Java long occupa 64 bit, quindi assegnarlo ad un int dovrebbe significare perderne 32.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 09-07-2007, 20:44   #26
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
La covarianza del tipo restituito definisce come sovrascrittura la ridefinizione di un metodo del supertipo in un sottotipo che differisca per il tipo di valore restituito se questo sia compatibile in assegnamento con l'originale.

Cioè:

Codice:
class A {
    Number fai(int a, float b) { ... }
}

class B extends A {
    Long fai(int a, float b) { ... }
}
è valido.
uhm, non vorrei dire ma ho fatto un esperimento che sembra contraddire le tue affermazioni: in Java 6 (cioè in compatibilità solamente con Java 6, senza retrocompatibilità impostata nelle opzioni del compilatore, uso Eclipse 3.2) ho esteso una classe non astratta che aveva un metodo che ritornava int. ho reimplementato quel metodo facendogli ritornare long e dava errore; con short stessa cosa. ho capito male io?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 09-07-2007, 21:03   #27
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Perchè mai questo pazzo PGI-Bis avrà usato Number e Long nel suo esempio?
__________________
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 09-07-2007, 22:17   #28
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Perchè mai questo pazzo PGI-Bis avrà usato Number e Long nel suo esempio?
aaaah ho capito...
praticamente se il metodo originale ritorna una certa classe, nel suo override devo ritornare o quella classe o una che la estende
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 10-07-2007, 08:31   #29
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 71104 Guarda i messaggi
praticamente se il metodo originale ritorna una certa classe, nel suo override devo ritornare o quella classe o una che la estende
Esatto. La covarianza vale solo per i tipi reference. Dopotutto è vero che un Long è-un Number mentre non è vero che un int è un long o viceversa!

E andando un po' più a fondo .... la covarianza sul valore di ritorno viene implementata con i metodi "bridge".

Dato:
Codice:
class A {
    public Number prova () { return 123; }
}

class B extends A {
    public Long prova () { return 123L; }
}
Se si lancia (dopo aver compilato): javap B si scopre che la classe B in realtà ha 2 metodi prova:

public java.lang.Long prova();
public java.lang.Number prova();

Il metodo che ritorna Number è un metodo "bridge", sintetizzato dal compilatore e fa nient'altro che chiamare il metodo che ritorna Long. Perché? Per mantenere la compatibilità!
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 13-07-2007, 10:09   #30
Tony Hak
Senior Member
 
L'Avatar di Tony Hak
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 1661
eheh .. mi fa piacere che i miei dubbi creano vere e proprie discussioni .. .. sapete spiegarmi il cast esplicito ed implicito ? .... non c'ho capito molto e su internet ci sn poki esempi ... tnk's
__________________
Tony Hak è offline   Rispondi citando il messaggio o parte di esso
Old 13-07-2007, 10:33   #31
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Tony Hak Guarda i messaggi
sapete spiegarmi il cast esplicito ed implicito ?
Il cast è la conversione da un tipo ad un altro. Le regole sono molte (vedere sul JLS <qui>).

Alcuni cast possono essere impliciti, altri cast devono essere fatti esplicitamente usando l'apposito operatore di cast, il tipo tra parentesi tonde es. (int)

A parte le conversioni particolari, le due fondamentali sono conversioni di widening (ampliamento) e di narrowing (restringimento). Entrambe si possono applicare ai tipi primitivi e ai tipi reference.

Cosa non ti è chiaro di preciso? Purtroppo non è che posso enunciare qui in un unico post tutte le regole e le specifiche.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
The Social Reckoning: il seguito di The ...
iPhone 16 si trova ora su Amazon a soli ...
Amazon fa a pezzi i prezzi dei monitor g...
Componenti hardware e periferiche PC a p...
Pianeta in crisi: 7 su 9 limiti vitali g...
Galaxy S25 FE con taglio di prezzo di 10...
4 robot aspirapolvere e 3 scope elettric...
Nuovissimi Xiaomi 15T e 15T Pro con tagl...
Le agenzie federali americane potranno u...
Smartphone pieghevoli sempre più ...
LG svela le Easy TV, una nuova gamma di ...
L'equipaggio della missione Shenzhou-20 ...
Possibili detriti spaziali del razzo cin...
Amazon distrugge i prezzi: TV OLED LG, i...
Trump studia dazi fino al 100% per sping...
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:20.


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