Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

What are delegates

 
Vishal Hegde
Ranch Hand
Posts: 1077
Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
what is delegates in core java
 
Hariharan Ram Kumar
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
When an object receives a request, the object can either handle the request itself or pass the request on to a second object to do the work. If the object decides to pass the request on, you say that the object has forwarded responsibility for handling the request to the second object.

The following Stack class provides a simple example of composition and forwarding:

public class Stack {
private java.util.ArrayList list;

public Stack() {
list = new java.util.ArrayList();
}

public boolean empty() {
return list.isEmpty();
}

public Object peek() {
if( !empty() ) {
return list.get( 0 );
}
return null;
}

public Object pop() {
if( !empty() ) {
return list.remove( 0 );
}
return null;
}

public Object push( Object item ) {
list.add( 0, item );
return item;
}

}



Through composition, Stack holds on to an ArrayList instance. As you can see, Stack then forwards the requests to the ArrayList instance. Simple composition and request forwarding (such as that of the Stack class presented above) is often mistakenly referred to as delegation.
 
Vishal Hegde
Ranch Hand
Posts: 1077
Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
private java.util.ArrayList list;

is this statement right i mean i have usually seen while importing ArrayList??
 
Jesper de Jong
Java Cowboy
Saloon Keeper
Pie
Posts: 15437
41
Android IntelliJ IDE Java Scala Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That's legal Java syntax, Vishal.

You can either import for example java.util.ArrayList and then use the simple name 'ArrayList', or not import it and use the fully qualified name 'java.util.ArrayList'.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic