Java编程思想第9章答案(2)

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());
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

returnadsss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值