【软考】软件设计师Java题(2023年上半年)

enum TYPE {
    COMMA,
    DOTS,
    LINE
}

interface PrintStrategy {
    public (1);
}

class Interval {
    private double lower;
    private double upper;

    public Interval(double lower, double upper) {
        this.lower = lower;
        this.upper = upper;
    }

    public double getLower() {
        return lower;
    }

    public double getUpper() {
        return upper;
    }

    public void printIntervals(PrintStrategy ptr) {
        (2);
    }
}

class PrintIntervalsComma implements PrintStrategy {
    public void doPrint(Interval val) {
        System.out.println("[" + val.getLower() + "," + val.getUpper() + "]");
    }
}

class PrintIntervalsDots implements PrintStrategy {
    public void doPrint(Interval val) {
        System.out.println("[" + val.getLower() + "..." + val.getUpper() + "]");
    }
}

class PrintIntervalsLine implements PrintStrategy {
    public void doPrint(Interval val) {
        System.out.println("[" + val.getLower() + "-" + val.getUpper() + "]");
    }
}

public class Main {
    public static PrintStrategy getStrategy(TYPE type) {
        PrintStrategy st = null;
        switch (type) {
            case COMMA:
                (3);
                break;
            case DOTS:
                (4);
                break;
            case LINE:
                (5);
                break;
        }
        return st;
    }

    public static void main(String[] args) {
        Interval a = new Interval(1.7, 2.1);
        a.printIntervals(getStrategy(TYPE.COMMA));
        a.printIntervals(getStrategy(TYPE.DOTS));
        a.printIntervals(getStrategy(TYPE.LINE));
    }
}

答案:

package test;

enum TYPE {
	COMMA, DOTS, LINE
}

interface PrintStrategy {
	// public (1);
	void doPrint(Interval val);
}

class Interval {
	private double lower;
	private double upper;

	public Interval(double lower, double upper) {
		this.lower = lower;
		this.upper = upper;
	}

	public double getLower() {
		return lower;
	}

	public double getUpper() {
		return upper;
	}

	public void printIntervals(PrintStrategy ptr) {
		// (2);
		ptr.doPrint(this);
	}
}

class PrintIntervalsComma implements PrintStrategy {
	public void doPrint(Interval val) {
		System.out.println("[" + val.getLower() + "," + val.getUpper() + "]");
	}
}

class PrintIntervalsDots implements PrintStrategy {
	public void doPrint(Interval val) {
		System.out.println("[" + val.getLower() + "..." + val.getUpper() + "]");
	}
}

class PrintIntervalsLine implements PrintStrategy {
	public void doPrint(Interval val) {
		System.out.println("[" + val.getLower() + "-" + val.getUpper() + "]");
	}
}

public class Main {
	public static PrintStrategy getStrategy(TYPE type) {
		PrintStrategy st = null;
		switch (type) {
		case COMMA:
			// (3);
			st = new PrintIntervalsComma();
			break;
		case DOTS:
			// (4);
			st = new PrintIntervalsDots();
			break;
		case LINE:
			// (5);
			st = new PrintIntervalsLine();
			break;
		}
		return st;
	}

	public static void main(String[] args) {
		Interval a = new Interval(1.7, 2.1);
		a.printIntervals(getStrategy(TYPE.COMMA));
		a.printIntervals(getStrategy(TYPE.DOTS));
		a.printIntervals(getStrategy(TYPE.LINE));
	}
}
运行结果:
[1.7,2.1]
[1.7...2.1]
[1.7-2.1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值