11、
package interfaces.interfaceprocessor;
class Re{
String get(String c) {
int l=c.length();
char[] ch=new char[l];
if(l%2==0) {
for(int i=0;i<l;i+=2) {
ch[i]=c.charAt(i+1);
ch[i+1]=c.charAt(i);
}
return new String(ch);
}
else {
for(int i=0;i<l-1;i+=2) {
ch[i]=c.charAt(i+1);
ch[i+1]=c.charAt(i);
}
ch[l-1]=c.charAt(l-1);
return new String(ch);
}
}
}
class ReAdapter implements Processor{
Re r=new Re();
public ReAdapter(Re r) {
this.r=r;
}
public String name() {
return "no need to use it";
}
public String process(Object input) {
return r.get((String)input);
}
}
public class UseRe {
public static void main(String[] args) {
Apply.process(new ReAdapter(new Re()), "HelloWorld");
}
}
12、
package ch9;
interface CanFight{
void fight();
}
interface CanSwim{
void swim();
}
interface CanFly{
void fly();
}
interface CanClimb{
void climb();
}
class ActionCharacter{
public void fight() {}
}
class Hero extends ActionCharacter implements CanFight,CanSwim,CanFly,CanClimb{
public void swim() {}
public void fly() {}
public void climb() {
}
}
public class Adventure {
public static void c(CanClimb x) {
x.climb();
}
public static void main(String[] args) {
Hero a=new Hero();
c(a);
}
}
13、
package ch9;
interface A{
void a();
}
interface B extends A{
void b();
}
interface C extends A{
void c();
}
public interface D extends A,B{
public static void main(String[] args) {
System.out.println("do nothing");
}
}
14、
package ch9;
interface A{
void a();
void a2();
}
interface B{
void b();
void b2();
}
interface C{
void c();
void c2();
}
interface E extends A,B,C{
void e();
}
class Hi{
public void a(){}
public void a2() {}
public void b() {}
public void b2() {}
public void c() {}
public void c2() {}
public void e() {}
}
public class D extends Hi implements E{
static void s1(Hi h) {}
static void s2(A h) {}
static void s3(B h) {}
static void s4(C h) {}
public static void main(String[] args) {
D d=new D();
s1(d);
s2(d);
s3(d);
s4(d);
}
}
15、
package ch9;
interface A{
void a();
void a2();
}
interface B{
void b();
void b2();
}
interface C{
void c();
void c2();
}
abstract class E implements A,B,C{
public void a(){}
public void a2() {}
public void b() {}
public void b2() {}
public void c() {}
public void c2() {}
public void e() {}
}
class Hi{
public void a(){}
public void a2() {}
public void b() {}
public void b2() {}
public void c() {}
public void c2() {}
public void e() {}
}
public class D extends E{
//static void s1(Hi h) {}
static void s2(A h) {}
static void s3(B h) {}
static void s4(C h) {}
public static void main(String[] args) {
D d=new D();
//s1(d);
s2(d);
s3(d);
s4(d);
}
}
16、
package ch9;
import java.util.*;
import java.nio.*;
class MakeChar{
private static Random rand=new Random(47);
public char next() {
return ((char)rand.nextInt(100));
}
}
public class UseChar extends MakeChar implements Readable{
private int count;
public UseChar(int count) {
this.count=count;
}
public int read(CharBuffer cb) {
if(count--==0)
return -1;
String result=next()+" ";
cb.append(result);
return result.length();
}
public static void main(String[] args) {
Scanner s=new Scanner(new UseChar(5));
while(s.hasNext())
System.out.println(s.next()+" ");
}
}
17、
package ch9;
class AO{
int a;
AO(int i){
this.a=i;
}
public String toString() {
return Integer.toString(a);
}
}
interface Ha{
int ONE=1,TWO=2;
AO a=new AO(3);
}
public class Exp implements Ha{
public static void main(String[] args) {
//ONE=2; this is final
System.out.println(ONE);
Exp e=new Exp();
System.out.println(e.a);
e.a.a++;
System.out.println(e.a);
Exp e2=new Exp();
System.out.println(e2.a);
//this is static
}
}
18、
package ch9;
interface Cycle{
void ride();
}
interface CycleFactory{
Cycle getCycle();
}
class UniCycle implements Cycle{
public void ride() {
System.out.println("ride UniCycle");
}
}
class UniCycleFactory implements CycleFactory{
public Cycle getCycle() {
return new UniCycle();
}
}
class BiCycle implements Cycle{
public void ride() {
System.out.println("ride BiCycle");
}
}
class BiCycleFactory implements CycleFactory{
public Cycle getCycle() {
return new BiCycle();
}
}
class TriCycle implements Cycle{
public void ride() {
System.out.println("ride TriCycle");
}
}
class TriCycleFactory implements CycleFactory{
public Cycle getCycle() {
return new TriCycle();
}
}
public class UseCycle {
public static void useCycle(CycleFactory factory) {
Cycle c=factory.getCycle();
for(int i=0;i<5;i++)
c.ride();
}
public static void main(String[] args) {
useCycle(new UniCycleFactory());
useCycle(new BiCycleFactory());
useCycle(new TriCycleFactory());
}
}
19、
package ch9;
import java.util.*;
interface Roller{
int roll();
}
interface RollerFactory{
Roller getRoller();
}
class DiceRoller implements Roller{
Random rand=new Random(47);
public int roll() {
int r=rand.nextInt(2);
System.out.println(r);
return r;
}
}
class DiceRollerFactory implements RollerFactory{
public Roller getRoller() {
return new DiceRoller();
}
}
class CoinRoller implements Roller{
Random rand=new Random(47);
public int roll() {
int r=1+rand.nextInt(6);
System.out.println(r);
return r;
}
}
class CoinRollerFactory implements RollerFactory{
public Roller getRoller() {
return new CoinRoller();
}
}
public class UseRoller {
public static void useRoller(RollerFactory factory) {
Roller r=factory.getRoller();
for(int i=0;i<10;i++)
r.roll();
}
public static void main(String[] args) {
useRoller(new DiceRollerFactory());
useRoller(new CoinRollerFactory());
}
}