Newsgroup: it.comp.java
Titolo: I limiti di Java

Salve volevo chiedere se è possibile in java selezionare un oggetto e
definirlo come implicito, segue un esempio:
void main(String[] args) {
   myobj = new mycls();
   // situazione di partenza
   myobj.prepare();
   myobj.set_tool("mio");
   myobj.callingto("3200466987");
   myobj.stop();
   // situazione desiderata, cioè quello che immagino si possa fare
   usage( myobj ) {
        prepare();
        set_tool("mio");
        callingto("3200466987");
        stop();
   }
}

    }
E' una necessita' inutile. Se hai bisogno di eseguire piu' operazioni
su un oggetto in un determinato ordine, allora probabilmente hai
bisogno di un metodo su quell'oggetto:
class Mycls{
  void doSomething( String tool, String number ){
    prepare();
    set_tool( tool );
    callingto( number );
    stop();
  }
}
cosi' dall'esterno farai solo:
myObj.doSomething( "mio", "3200466987" );

 Salve volevo chiedere se è possibile in java selezionare un oggetto e

a parte che in quel frammento di codice basterebbe aggiungere un
myobj. prima di ogni invocazione metodo, in ogni caso nell'ottica
della programmazione ad oggetti il metodo usage() appartiene di
diritto alla classe di mycls.
ti consiglio di ripassare le basi della oop.

     }
Beh... se mycls è roba tua potresti modificare tutti metodi per 
diventare nella forma
public mycls myMethod(args...) {
	[....]
	return this;
}
il che ti permetterebbe di scrivere
myobj.prepare().set_tool("mio").callingto("1234455").stop();
Ma IMHO non è una gran bella idea se lo scopo è solo risparmiare qualche 
byte nel sorgente....
-- 
r--r--r--


concordo, ottima risposta (anche quella di SoulSpirit).
La forza di Java è che, fortunatamente, ti costringe
a capire e quindi poi a pensare in maniera corretta la OOP.

 ti consiglio di ripassare le basi della oop.
La mia idea e' che OP avesse in mente il with di Javascript/Visual
Basic/FreePascal.
In particolare, non credo che quell' "usage" sia da intendersi come un
metodo, ma come uno statement del linguaggio. Credo anche che la OOP
abbia relativamente poco in tutto questo: e' una scorciatoia e basta.
Scorciatoia che a me personalmente non piace (explicit is better than
implicit) ma niente di diverso che una scorciatoria. 
In particolare, la soluzione non e' aggiungere (IMHO) un metodo a myobj.
Tipicamente non e' detto che quell'operazione in quell'ordine sia
"degna" di un metodo suo. Direi che in Java (e in tanti altri linguaggi)
si sta con il myobj. davanti e amen.
-- 
-riko
http://www.enrico-franchi.org/
http://rik0-techtemple.blogspot.com/

 si sta con il myobj. davanti e amen.
Non conoscendo il contesto, non ha senso disquisire su chi ha ragione: � 
vero che sia meglio eleggere quel pezzo di codice  a metodo della 
classe, come anche no. Dipende.
Quello che � certo � che non � stato evidenziato alcun limite di Java in 
queto post.


be fino alla 1.5 non c'era l'import static che rende inpliciti alcuni
oggetti statici
ulissimo è
import static System.out;
e poi una bella println(...
senza alcun oggetto come prefisso
io pensavo che qualcosa di simile si potesse fare in maniera
arbitraria all'interno del codice;
alcuni linguaggi usano lo statement di cui parlavo prima!