/**5-3
* 在Printable接口中增加一个新的PrintItMyWay(char)方法,
* 这个方法有一个字符型的形参,返回值为空.
* 其功能是利用给出的字符打印,例如如果给定字符为*,一个长为4
* 宽为3的矩形的屏幕打印结果为:
* ****
* ****
* ****
**/
public class FirstProgram{ public static void main (String[] args) { Rectangle rectangle = new Rectangle(5, 3); Square square = new Square(4); rectangle.printItMyWay('*'); square.printItMyWay('*'); }}interface Printable{ void printItMyWay(); void printItMyWay(char n);} class Rectangle implements Printable{ protected int length; protected int width; Rectangle () { } Rectangle(int l, int w) { this.length = l; this.width = w; } void show() { System.out.println(" length: " + length + " width: " + width); } void print(char n) { int i, j; for (i = 0; i < width; i++) { for (j = 0; j < length; j++) System.out.print(" " + n + " "); System.out.println(); } System.out.println(); } int perimeter () { return (length + width) * 2; } int area () { return length * width; } public void printItMyWay() { this.show(); System.out.println(" permiter: " + this.perimeter() + " area: " + this.area()); } public void printItMyWay(char n) { this.print(n); }} class Square extends Rectangle{ protected int side; Square (int side) { super(); this.side = side; } void show() { System.out.println(" side: " + side); } void print(char n) { int i, j; for (i = 0; i < side; i++) { for (j = 0; j < side; j++) System.out.print(" " + n + " "); System.out.println(); } } int perimeter () { return 4 * side; } int area () { return side * side; }}