Newsgroup: it.comp.java
Titolo: Test

Ciao a tutti oggi ho fatto un colloquio presso una azienda e mi è stato
sottoposto un test banale sui fondamenti della programmazione java...ho però
sbagliato due domande ma non mi è ben chiaro il perchè. Le domande sono le
seguenti:
1)un metodo statico può accedere ad una variabile non statica? Vero o falso?
Io ho risposto vero perchè posso dichiarare, ho pensato, un metodo statico
all' interno di una classe ed accedere ad una variabile di classe non
statica all' interno del metodo. Ma mi è stato detto che la risposta
corretta è falso.
2)Dato il seguente frammento di codice
try{....}
catch(Exception e){......}
catch(IOException ioe){...} la compilazione avviene correttamente?
Io ho risposto si ( avevo qualche dubbio) ma mi è stato detto che non
compila.
Grazie per le delucidazioni. Saluti.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Grazie per le delucidazioni. Saluti.
Premesso che sto ancora imparando java dall'abc, mi pare che IOException
vada prima di Exception, sennò lui catcha tutto sul primo blocco, e
ignora quello specifico, almeno logicamente parlando, poi non so se il
compilatore riesce a capire la cosa.
Enrico


Questo era scontato ma la domanda era se lo compilava o no. E non dirmi
prova: non avevo il calcolatore al momento del test :-).Saluti


 compila.
no, non compila. il compilatore si accorge che secondo blocco catch non 
è raggiungibile, perchè Exception è meno specifica di IOException.


No che non compila, proprio perchè nulla entrera' mai in quel catch
(L'errore e' "Unreachable catch block for *** " ) 

 devi ripassare il concetto di static applicato ai metodi/field.
cut
Hai ragione scusami ho verificato or ora e non si può.....faccio ammenda.
Saluti



We ma sei un pozzo di scienza
Una miniera d'oro
Hai mica fatto qualche progetto open source ke do un okkio ?

 Hai mica fatto qualche progetto open source ke do un okkio ?
Stai usando un sistema per postare su Usenet via SMS?

 Hai mica fatto qualche progetto open source ke do un okkio ?
si, dai, per favore mi dai un occhio che ne ho bisogno?
http://tinyurl.com/yjm842

rootkit ha scritto:

Sei offensivo, lo sai che ti leggo, ti seguo, ti ascolto
E per favore non diffondere la notizia. ;-{))
Comunque complimenti un po' di "divertissement" sta facendo capolino
--
ac

 Sei offensivo, 
al "consulente" che gli vuoi dire?


Ti ha fatto una domanda, non ti ha insultato.
-- 
Andrea Francia
http://andreafrancia.blogspot.com/2008/07/colinux-linux-dentro-windows.html

 al "consulente" che gli vuoi dire?
ke kiedere kosta, xke, kackio, oxeriamo bene.E sxiamo di oxare mejlio.Kiaro?
--
kekkino kixki

 Ti ha fatto una domanda, non ti ha insultato.
certo, certo, come no.

 
Non bisogna avere pregiudizi ma visto le maldicenze fra Dottori e 
Consulenti (EDP e' vintage, ahhhh... che profumo) girate qualche giorno 
fa la voglia ti viene. E' la musichetta che stona, avrei preferito un 
"Carissimo Pinocchio" di dorelliana memoria.
--
ac

 catch(IOException ioe){...} la compilazione avviene correttamente?
no, e' anche qui c'e' un motivo ben preciso..
IOException come tu saprai estende Exception, questo vuol dite che e'
"castabile" automaticamente a
Exception, cioe' potresti dire:
Exception e = new IOException("blah blah"):
oppure passare un oggetto di classe IOException a una funzione che
riceve come parametro un Exception
riflettendo su questo dovrebbe essere chiaro che un
catch(Exception e) gestisce automaticamente ogni classe che estende
Exception, e quindi il secondo catch, viene flaggato dal compilatore
come unreacheable code.
ti faccio due altre domandine bastarde cosi' per gioco:
1)e' possibile ridurre la visibilita di un metodo quando ne faccio l
override?
cioe' se ho un metodo
public void f()
in una classe A
e' possibile ridefinirlo come
protected void f()
in una classe B che estende A?
E se non e' possibile qual e' il motivo?
e il contrario, cioe' aumentare la visibilita  di un metodo in un
override, e ' possibile?
2) e' possibile nell' overrride di un metodo lanciare eccezioni che
non venivano lanciate
   dal metodo originario? e se non si puo'. perche'?
   e lanciare eccezioni che sono madri delle eccezioni lanciate nel
metodo originario?
  per essere chiari .. dato il metodo
   public void f() throws FileNotFoundException
   nella classe A
   e' possibile ridefinirlo in una classe B , figlia di A , come
   public void f() throws FileNotFoundException,
MalformedURLException
   oppure come
   public void f() throws Exception
   e che mi diresti del contrario?

 e secondo te quale nome stamperei? di quale persona?
dell'ultima che ha cambiato il valore di nome?
un contenitore di tipo LIAO (last in, always out)?
L'ipotesi era la tua.
--
ac


Non vedo il source code ...
Ce solo un immagine che lampeggia in una lingua sconosciuta
E una canzone sempre in un linguaggio sconosciuto
Non hai un progetto in italiano oppure in inglese ?
Questo nel tuo dialetto non lo comprendo


Pensavi che fosse ironico?
Credo che tu ti sia sbagliato.


 Credo che tu ti sia sbagliato.
penso che prenda per i fondelli (o ci provi).
e penso anche che questa discussione stia durando troppo.

 - Mostra testo citato -
lol lol
Bella

 e penso anche che questa discussione stia durando troppo.
Oh mamma!


 
riccardo.odrac...@gmail.com
 ha scritto:

???  quando io invoco Persona.myStaticMethod() non e' detto che esista
nessun oggetto di classe Persona, e anche se ne esistessero non vedo
perche' il metodo dovrebbe interagire con una in particolare.

riccardo...@gmail.com
 ha scritto:

allora l'ipotesi era "se fosse possibile che...."
Se fosse possibile mi sarei organizzato e se vengo chiamato direttamente 
(i.e. con nome di classe) tratterei quella variabile, di fatto, come se 
fosse statica e sarebbe una specie di ereditarieta' delle variabili. E 
poi, comunqe, se vengo chiamato come istanza,unica, ma istanza, i.e.:
     static public HandlerParameter getInstance() {
             if (_instance == null){
                     _instance = new HandlerParameter();
             }
             return _instance;
   	}
ho tutto il diritto di gestirmi le variabili non statiche che voglio e 
nemmeno le avrei definite "static" ma forse "common" o "unique" poiche' 
statiche non sono (Etimologia: greco  statikòs  atto a fermare, deriv. 
da  histastahai  stare fermo) che invece sono le "final" che in questo 
caso avrei definito "static" poiche' le "final" dovrebbero entrare in 
gioco solo alla fine.
Riepilogando:
normal : appartengono all'istanza (default)
common/unique: sono comuni a tutte le istanze (attuali: static)
static: non modificano il valore inizialmente assegnato (attuali: final)
final: le eseguo alla fine (di che non e' dato sapere, no ci sono! dico 
al gc di levarle subito di torno) (attuali: non so che)
Ma java e la teoria degli oggetti, fortunatamente (per voi), non la ho 
scritta io. Ma sono quasi certo che qualcuno che fa casino con la parola 
static,me compreso, ne avrebbe sollievo.
e poi ancor piu' giocherellando:
Persona esiste sta da qualche parte ed ha comportamenti e proprieta'.
E questo e' incontrovertibile perche' e' stata scritta.
PersonaParticolare non esiste e forse non esistera' mai perche' Persona 
e' come il padreterno uno e non trino e non consente di essere copiato 
al massimo viene da te sotto mentite spoglie (il 
_instance_cespuglio_rovente).
Persona pero', con le dovute cautele, ti consente di comunicare con lui 
e ti elargisce cose le piu' svariate e siccome e' una Persona per bene 
accoglie anche le tue richieste con la prerogativa di scordarsi tutte le 
richieste precedenti (<--qui sta l'eventuale LIAO) perche' non ha tempo 
da perdere e lo fa solo una tantum poiche' le ripetizioni lo annoiano e 
  ed e' notoriamente uno molto stanco e impegnato (perche' lui/lei deve 
pensare sempre a tutto/i). Su alcune cose poi e' molto riservato/a e non 
se ne parla nemmeno di fargli cambiare opinione.
Zenone di Elea era un genio. Considerando che la tartaruga vede sempre 
Achille "sfrecciargli" davanti.
--
ac

 no, e' anche qui c'e' un motivo ben preciso..
CUT
Tutto vero ma la domanda era se compilava o meno: sul fatto che sia un
frammento di codice che non scriverei mai spero tu sia d' accordo con me sul
fatto che compilasse avevo dei dubbi ma non ero sicuro affatto della
risposta.


 allora l'ipotesi era "se fosse possibile che...."
no io stavo solo spiegango che e' impossibile , ed e' anche privo di
senso.
In effetti e' una infelice mancanza anche solo il fatto che una
variabile statica si possa
invocare anche tramite la reference di un oggetto. In C# hanno avuto
il buon
senso di renderlo illegale.
Poi se ti piace farti seghe mentali su alessandrocarajava
liberissimo.. ma io trovo
piu interessante concentrarmi sui linguaggi reali.

 risposta.
dubbio legittimo.. in effetti arrivare a capire che il compilatore non
lo lascera' passare e' veramente
dura se non hai gia incontrato il problema. Questa e' in effetti una
domanda abbastanza "pulciosa"
Se ne vuoi vedere di peggio guarda qualche simulazione degli esami di
certificazione.. o qualche libro sulla certificazione come:
http://www.amazon.com/SCJP-Certified-Programmer-Java-310-065/dp/0071591060/ref=sr_1_1?ie=UTF8&s=books&qid=1226704922&sr=1-1
comunque se hai ceffato solo quelle due domande non dovresti avere
problemi.
in bocca al lupo!

 Poi se ti piace farti seghe mentali su alessandrocarajava
mai fatto seghe mentali, fisicosomatiche forse si. Su java poi, My gawd!
come diceva Battiato "...non sopporto i cori russi etc...."
ahhhh.... questo lo hai scritto tu
"se la funzione f compilasse . allora io la potrei invocare cosi'"
Persona.f():
e secondo te quale nome stamperei? di quale persona?"
C'erano un congiuntivo  due condizionali e due "question mark".Non ti 
piaciuta la risposta? Pace. Ma allora  come diceva Virgilio ".....Vuolsi 
così colà dove si puote / ciò che si vuole, e più non dimandare..."
--
ac

 così colà dove si puote / ciò che si vuole, e più non dimandare..."
Guarda che non si è capito nulla di quello che hai detto (parlo del 
delirante post precedente). Sembri avere molta confusione in testa.

cicap ha scritto:

E' meglio avere confusioni che certezze. E' meglio avere deliri che 
sogni in bianco e nero o loro totale assenza (dei sogni naturalmente).
Anche per te, non hai capito nulla?, pace. Il *noi* l'ho interpretato di 
tipo majestatis.
Sono orbo e parlo con gli orbi  e con i ciechi.
Purtroppo, per il sottoscritto, la gente che ci vede benissimo e' 
irragiungibile.
P.S.: Ma se non ho capito nulla e non capisco nulla e non capiro' mai 
nulla perche' sprecare tante energie?
Forse e' meglio bere cacao VonHouten che tagliarsi le vene 
all'Angleterre (libera cit. di W. Majakovskji,in "A Serghei Esenin")
P.P.S. (cosa dovuta)
Tra  l'altro dall'alto della tua illuminazione non ti sei neanche 
accorto che ho sbagliato a fare il copiaincolla (in altro 3d):
questo e' piu' giusto
-------------->
var o = { /*...*/ },  // the 'store' JSON object from above 
(Nota:*above*=quello che avevo copiaincollato nell'altro 3D)
     res1 = jsonPath(o, "$..author").toJSONString(),
     res2 = jsonPath(o, "$..author", {resultType:"PATH"}).toJSONString();
++ <bold> jsonPath piu' o meno .toJSONString() nelle vesti dello 
SpiritoSanto<bold/>++.
Both Javascript and PHP example result in the following JSON arrays (as 
strings):
res1:
[ "Nigel Rees",
   "Evelyn Waugh",
   "Herman Melville",
   "J. R. R. Tolkien"
]
res2:
[ "$['store']['book'][0]['author']",
   "$['store']['book'][1]['author']",
   "$['store']['book'][2]['author']",
   "$['store']['book'][3]['author']"
]
Please note, that the return value of jsonPath is an array, which is 
also a valid JSON structure. So you might want to apply jsonPath to the 
resulting structure again or use one of your favorite array methods as 
sort with it.
<----------------
(Libera traduzione) E qui mi sono piaciuti.
Noi ti diamo una mano, se vuoi, se non vuoi, puoi scegliere il modo piu' 
consono per suicidarti, e' una tua libera scelta.
P.P.P.S:Nella casa di mo padre c'e' una colonia di gatti. Uno lo chiamo 
Ossidiana (chi ha visto l'ossidiana sa perche'). E' un gatto strano, non 
vuole che gli arruffo il pelo e si allontana ma se non me lo filo viene 
a mordermi i pantaloni ed a infilarci le sue unghiette.
--
ac

 accorto che ho sbagliato a fare il copiaincolla (in altro 3d):
Probabile che mi sia sfuggito piu' di qualche cosa. 
Tra l'altro l'ho già detto: non si capisce quello che scrivi, come non si 
capisce quello che hai scritto sotto. Se vuoi continuare la discussione, 
please riformula i concetti in maniera leggibile, altrimenti tanti saluti.

 please riformula i concetti in maniera leggibile, altrimenti tanti saluti.
Aridajie col plurale majestatis.
Tanti saluti
--
ac

 Aridajie col plurale majestatis.
è "si impersonale".
ps: ha ragione.
-- 
++ questo messaggio è scritto in forma ridotta per venire incontro alle 
vostre capacità mentali
http://unopuntozero.wordpress.com/
http://www.flickr.com/photos/marko_po/

 ps: ha ragione.
bene sono contento per lui.
Do per scontato che ti riferisca al "non si capisce".
Ma tu e lui siete persone che ci vedono benissimo ;-{).
Se poi, inoltre, dubbio che talvolta ho, leggete sempre 1/2 post o 1/2 
3D, comprendo.
Siamo i un NG pubblico con tutte le caratteristiche del caso.
Ma dimmi tu in un ramo di 3d in cui
1)--- uno (a) col nome a rovescio da una spiegazione "colta" e immagino 
corretta e pone una domanda con un "se" davanti
2)---- un'altro (b) gli risponde, piu' o meno con la prima cosa che gli 
viene in testa, istigato dall'aura che circonda (a).
3)---- sempre (a) interviene ripetendo "fideisticamente" il salmo 23 
della Bibbia (spiegazione per cicap: (a) cita il manuale e dice che la 
risposta di (b) non sta nel manuale)
4)---- (b) reinterviene con elucubrazioni "semiserie" (ma quando sono in 
gioco i salmi per (b) e' peggio della "cannabis indica")
5)----(a) risponde che (b) non deve farsi le seghe mentali, e cio' 
sminuisce la sua "aura"
f)----(b) rilancia che le seghe se le e' sempre fatte somatiche e che se 
le risposte non gli piacciono dovrebbe evitare di fare domande, mediante 
citazione "coltissima"
6)----interviene (c) che ha ancora le "properties" che gli girano che 
parla di "capire", "deliri" e "confusione" nei riguardi di (b)
7)----(b) che quando gli fanno il controbuio non ci vede piu' comincia a 
dar fondo a tutti i suoi "sporchi" trucchi a base di cacao, orbi, 
ciechi, gatti che si chiamano Ossidiana e sogni colorati
8)--- (c) cerca di inchiodare (b) alle sue responsabilita' e gli chiede 
di tornare a giocare pulito
9)--- (b) si e' stancato e cerca di uscire dal gioco
10)--- Interviene un altro giocatore (d) che gli dice piu' o meno che e' 
un "cacasotto", (non dovrebbe, il (d), perche' e' un suo "vizietto") e 
vedere il suo "zampino" per (b) e come una "velina" nuda che fa le fusa
11)--- (b) che ha "molto" tempo  da perdere si mette li e di buona vanga 
ritorna su terreni gia' dissodati canterellando "la societa' dei 
magnaccioni", canzone popolare della sua terra.
........to be continued (may be)
Glossario dei termini
-"cannabis indica"="cannabis indica"
-seghe mentali=che attengono all'"Aura" (cfr. Wikipedia)
-seghe somatiche= pugnette, pippe, zaganelle (cfr. Google)
-"sporchi" trucchi=citazioni e metafore
-salmo 23 della Bibbia = Java reference & tutorial
-abbandono improvviso di 3d=vizietto
-ha ancora le "properties" che gli girano= stranamente non eufemismo ma 
riferimento ad altro 3d (cmq cfr Paolo Conte:Bartali)
-di buona vanga ritorna su terreni gia' dissodati=rivangare
Ma cosa deve fare un povero cristo? Yes "j son Catherine Deneuve"!
Ahhhhhhhhhhhhhhhhhhh........
--
ac

 Ma anche no, quando si parla di metodo statici.
:)
Io ho paura per chi se lo ritrova come collega programmatore sullo
stesso progetto......
Pero' una cosa mi consola, e' vedere che anche con i bassi stipendi da
programmatore
c'e' ancora qualcuno che riesce a permettersi la cocaina...

 c'e' ancora qualcuno che riesce a permettersi la cocaina...
Non ne ho bisogno. Le mie "endorfine" sono come i famosi "anticorpi" di 
Carlo Verdone e poi preferisco il "pakistano nero e l'ombrello" (cit). 
Ma se mi dici questo, bisognera' abbassare gli stipendi e
renderli "final"? Mi sa pero' che le OO.SS. (e OO non sta per 
ObjectOriented) si inalbererebbero un po'.
Comunque, caro Riccardo, la questione e' che sapere come funzionano 
esattamente le cose e non riuscire a mettere in fila tre istruzioni 
(pensarle sarebbe chiedere troppo) e' molto peggio del contrario.
Quando hai un problema e non ne sai uscire non vai certo a raccontare al 
tuo CP o (PL per i colti) che sai perfettamente come funzionano le 
"static" o le "abstract" o le "interfacce" o tutto l'armamentario a corredo.
Il tuo CP potrebbe dichiarare apertamente cosa te ne devi fare.
E' altresi' vero che se sei padrone di tutte quelle cose forse le tre 
istruzioni riesci a metterle insieme.
Da quello che dici sembrerebbe che non sei ancora salito molto di 
"carriera", io ti auguro di farlo e magari con un piccolo nodino al 
fazzoletto. Nodino da osservare quando la tua attivita' sara' quella di 
riempire fogli excel con i rendiconti delle attivita' ed il loro 
costo-ricavo procapite. In quel caso,laddove i conti non tornano, 
probabilmente se al "capo" gli vai a fare il discorso delle "static" 
quello che ti faceva il CP e' una inezia al confronto.
E cosi' a salire per tutta la catena alimentare, gerarchia pura e 
semplice senza alcuna DTD o "interfaccia" da rispettare.
Apropos, quelle fisiche aiutano! Quelle mentali sono come l'overloading 
dei metodi.
Ahhhh ....ecco una domanda che faccio.
Ma Lei sente estrema necessita' dell'overloading?
Normalmente la risposta e' l'"Urlo" di Munch.
In genere solo in una piccolissima percentuale vedo accendersi una luce 
negli occhi a passiamo subito a un piu' amichevole "tu".
Stavolta faccio io a te una domanda.
Ma se ti dicessi che nel 1982 facevo applicazioni web quale sarebbe la 
tua risposta/considerazione?
Saluti.
--
ac

 Ma va!? Questa fa il paio con l'ECMAScript. May be "ironic"?
si, si, buonanotte.


 tua risposta/considerazione?
Scusa se mi intrometto ma nel 1982 il web ancora non esisteva.
Il protocollo http è del '91, qualche anno dopo.

Pablo Xon ha scritto:

Risposta corretta. Ma a qualcuno potrebbe venire in mente che 
esistevano/ono applicazioni di "tipo" web. I.e. un server un/n 
terminale/i con il server che si dimentica del terminale e usa gli 
stessi trucchi del web per "mantenersi" le informazioni, cookie esclusi 
e relativo js (non hai cookies ovviamente), poiche' i terminali erano 
"veramente" stupidi. Altro limite era che "normalmente" non potevi 
cambiare server.
Ovviamente senza tutte le "figurine" del web.
Mi riferivo quindi piu' alla "logica" di funzionamento che non alla 
tecnologia usata (e per tecnologia intendo sia i pezzi di ferro che 
tutto il substrato di trasporto della informazione)
fatto sta che il mio primo commento "webbistico" e' stato "to' chi si 
rivede"
--
ac

Pablo Xon ha scritto:

P.S.
Intromissione graditissima. Magari fossero, non dico tutte, ma una 
quantia' statisticamente apprezzabile come la tua.
Saluti
--
ac