CS102 OOP_3 slides
Download
Report
Transcript CS102 OOP_3 slides
Java Coding OOP_3
Some important Java interfaces
+ Inner classes
David Davenport
Computer Eng. Dept.,
Bilkent University
Ankara - Turkey.
email: [email protected]
IMPORTANT…
Students…
This presentation is designed to be used in class as
part of a guided discovery sequence. It is not selfexplanatory! Please use it only for revision purposes
after having taken the class. Simply flicking through
the slides will teach you nothing. You must be actively
thinking, doing and questioning to learn!
Instructors…
You are free to use this presentation in your classes
and to make any modifications to it that you wish. All
I ask is an email saying where and when it is/was
used. I would also appreciate any suggestions you
may have for improving it.
thank you,
David.
SOME JAVA INTERFACES…
Java Interfaces
Design by interface gives flexibility
The Java API has a lot of interfaces
Iterator
Comparable
Serializable
& a multitude for
GUI event-handling!
Java’s Iterator Interface
boolean hasNext()
Object next()
void remove()
To iterate (to go)
through a collection,
processing each
element once and once
only
// Scanner class implements Iterator
tokens = new Scanner( “To be or not to be”);
while ( tokens.hasNext() )
System.out.println( tokens.next() );
Java’s Iterator Interface
boolean hasNext()
Object next()
void remove()
Surprisingly, ArrayList
does not implement
Iterator.
// given an ArrayList, list
Iterator x = list.iterator();
while ( x.hasNext() )
System.out.println( x.next() );
It implements
Iterable!
Iterator iterator()
The Enumeration Interface
boolean hasNextElement()
E nextElement()
// StringTokenizer
Similar to, but older
than Iterator.
Has different names &
does not have remove
method.
Examples include
StringTokenizer & Vector
(which also has Iterator!)
tokens = new StringTokenizer(
“To be or not to be”);
while ( tokens.hasMoreElements() )
System.out.println( tokens.nextElement() );
Java’s Comparable Interface
int compareTo( Object o)
compare this object with o
and return negative, zero, positive
to indicate <, =, > respectively!
// Assuming x implements Comparable
//
e.g. String
if ( x.compareTo( y) > 0 )
exchange( x, y);
Java’s Serialization Interface
Allows Java objects to be converted
to/from a stream of bytes!
Rather special since you do not need to
write any methods, merely
Make class implement Serializable
Have a default constructor
Ensure all properties are Serializable
Check the Java API documentation
for details and example code.
Interface notes
Can’t create objects of interface type,
only a type that implements it
Interfaces can extend interfaces
(but not classes) to form a hierarchy
separate from class one
Start design with interfaces!
Java provides “instanceof” operator to test
object type (but use very sparingly)
Cloneable is another common interface.
INNER CLASSES…
Inner Classes
Nested
or Inner classes
are defined inside other classes
have direct access to outer class
can be named or anonymous
Named Inner classes
Simply define one class inside another!
(generates outer$inner.class files)
Inner Classes (cont.)
Anonymous Inner classes
Create in-line (on the fly!)
Useful when only a single object needed
& class not otherwise reusable.
variation of new statement…
className x = new superClass_or_interface() {
// the prop’s & methods
}