刷题的狂欢-----JAVA每日三练-----第二天
第一题 创建Shape(图形)类,该类中有一个计算面积的方法。圆形和矩形都继承自图形类,输出圆形和矩形的面积,实现效果如图所示。
先定义我们的测试类:
package shape; public class Test { public static void main(String[] args) { Circle circle = new Circle(3); Rectangle rectangle = new Rectangle(2,5); System.out.println("圆形的面积是"+circle.area()); System.out.println("矩形的面积是"+rectangle.area()); } }
再定义圆形和矩形的父类,也就是图形类:
package shape; public abstract class shape { public abstract double area(); }
再定义矩形类和圆形类:
package shape;//矩形类 public class Rectangle { double length; double width; public Rectangle(double length,double width) { this.length = length; this.width = width; } public double area(){ return this.length*this.width; } }
package shape;//圆形类 public class Circle extends shape{ double r; public Circle(double r) { this.r = r; } public double area(){ return Math.PI*this.r*this.r; } }
第二题 创建抽象类烟花(Fireworks)类,该类中有一个抽象的爆炸方法 boom(),使用匿名内部类实现点燃红色烟花并爆炸的效果。这样的需求该如何实现?注意:每个爆竹只能调用一次boom()方法,实现效果如图所示。
//标准答案 abstract class Fireworks { abstract void boom(); } public class BoomFireworks { public static void main(String[] args) { new Fireworks() { void boom() { System.out.println("红色的烟花照亮天空"); } }.boom();//这种写法在网上没有找到 } }
PS: 没有了解过匿名内部类,在此进行补充: 参考资料:
匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口
笔者答案:
abstract class Fireworks { public abstract void boom(); } public class Demo { public static void main(String[] args) { Fireworks fireworks = new Fireworks() { public void boom() { System.out.println("红色的烟花照亮天空"); } }; fireworks.boom(); } }
第三题 设计钟表类,钟表有一个静态的获取时间方法,此方法与钟表的结构、样式、价格无关,运行结果如图所示。
public class Clock { double price; String structure; String style; public Clock(String structure,String style,double price){ this.structure = structure; this.style = style; this.price = price; } static public void Time(){ System.out.println("当前时间:10点10分"); } public static void main(String[] args) { Clock JiXie = new Clock("机械","钟",189.99); System.out.println(JiXie.structure+JiXie.style+"的价格是"+JiXie.price+"RMB"); Time(); Clock ShiYing = new Clock("石英","手表",69); System.out.println(ShiYing.structure+ShiYing.style+"的价格是"+ShiYing.price+"RMB"); Time(); } }
好好学一门语言,感谢你的支持!
上一篇:
IDEA上Java项目控制台中文乱码