Like this:

interface Selector {
� boolean end() ;
� Object current() ;
� void next() ;
}

class Sequence {
� private Object[ ] seq ;
� private int next =0 ;
� public Sequence(int size) {
� � seq=new Object[size] ;
� }

� public void add(Object o) {
� � if (next<seq.length) {
� � � seq[next] = o ;
� � � next++ ;
� � }
� }
��
� public Selector getSelector( ) {
� � return new Selector( ) {
� � � private int index=0 ;
� � � public boolean end() { return index==next ; }
� � � public Object current() { return seq[index] ; }
� � � public void next() { index++ ; }
� �} ;
� }
}

class TestSequence {
� public static void main(String[ ] arg) {
� � Sequence sRef=new Sequence(10) ;
� � for (int i=0 ;i<5 ;i++) sRef.add((�string numero �+i)) ;
� � Selector select=sRef.getSelector() ;
� � while( !select.end()) {
� � � �System.out.println((String) (select.current())) ;
� � � �select.next() ;
� � }
� }
}

Or this

button.addActionListener(
� new ActionListener() {
� � public void actionPerformed(ActionEvent e) {
� � System.out.println(e.getSource()) ; }
� }
�}
}


On Sun, Nov 24, 2013 at 12:11 PM, Tudor Girba <tudor@tudorgirba.com> wrote:
In Java, Anonymous classes are classes that literally have no explicit name. They are used as replacement for closures.

closure = new Closure() {
� �public void do(Object object) {
� � � ...
� �}
}
closure.do(42);

A side effect of this construct is that the class is only visible from within the method in which it is defined. So, "anonymous" as a term describes only one facet of the concept.

Cheers,
Doru




On Sun, Nov 24, 2013 at 10:24 AM, St�phane Ducasse <stephane.ducasse@inria.fr> wrote:
So I'm confused.

what does it means in Java?
What is the meaning (I know that anonymous are the one with $ in the name when looking at them from the Java bycode point of view) but beside that?




Indeed. Same for listeners etc.

Anonymous class has indeed a very clear meaning to me and to any student that has been exposed to Java (which means "a huge lot").

Phil


On Sun, Nov 24, 2013 at 1:20 AM, Esteban A. Maringolo <emaringolo@gmail.com> wrote:
2013/11/23 Igor Stasenko <siguctua@gmail.com>:
> On 23 November 2013 21:26, Esteban A. Maringolo <emaringolo@gmail.com>
>> >> imo, a better term to use for it would be 'private class' , because
>> >> anonymous is a bit fuzzy.

>> > I disagree. �Anonymous classes is the term that has been used for over
>> > two decades. �It means, literally, a class that has no name because it is
>> > not in Smalltalk (or in a top-level environment if the dialect has
>> > namespaces). �This is not at all fuzzy. �Private class means something quite
>> > different, a class that is private to some environment, e.g. a class nested
>onyl> > within another class as occurs in SmalltalkAgents or Newspeak.
>>
>> +1
>>
>> Anonymous = without name.
>> There's not much to add to it.

> That's the point. Now what is practical implications of it?
> Think, how far you can go with anonymous versus private class.
>
> If you deny anonymous classes from being private,
> then you'll immediately hit many problems with tools,
> which working with public classes and expecting them to have a name.
> And i don't have to go deep to point on problems: just imagine that you did
> a change to such 'anonymous' class, now since it is public, all tools is
> notified about this change, including change logger.. and my question, what
> you going to log into .changes file in such case?

I can see your point. But then just say that "Anonymous classes are private".
Just don't change the name. Anonymous classes are a well know concept
used through piles of literature.
E.g. In Java the compiler creates anonymous classes everytime you
directly instantiate an Interface.

ej myObject.schedule(new Runnable {...});

Regards,






--

"Every thing has its own flow"