// OOP 1/3
import java.util.*;
public class Element {
private Character c;
private Element( Character c ) {
this.c = c;
}
public void display() {
System.out.print( toString() );
}
public String toString() {
return c.toString();
}
static private HashMap samples = new HashMap();
static public Element get( Character key ) {
Element sample = (Element)samples.get( key );
if( sample == null )
samples.put( key, sample = new Element(key) );
return sample;
}
}
// OOP 2/3
import java.util.*;
public class ElementArray {
private ArrayList body = new ArrayList();
public ElementArray( String s ) {
for( int i = 0, size = s.length(); i < size; i++ )
body.add( Element.get( new Character( s.charAt(i) ) ) );
}
public void display() {
Iterator it = body.iterator();
while( it.hasNext() )
( (Element)it.next() ).display();
}
}
// OOP 3/3
public class HelloWorld {
public static void main( String[] arg ) {
ElementArray e = new ElementArray("Hello World!¥n");
e.display();
}
}
// この、一連のコードは、
// OOの意義を考えるためのもの。
// 他のいくつかのスレに、リンク張ります。