| 分类: java |
在做ITAT的模拟题的时候,最后一道题花了不少的时间,而且老报missing
return statement错误,题目是这样的:
编写一个完整的Java Application
程序。包含接口ShapeArea,类Circle、Rectangle、Test,具体要求如下:
⑴接口ShapeArea:
①接口方法
double getArea():求一个形状的面积
double getPerimeter ():求一个形状的周长
⑵类Rectangle:
实现ShapeArea接口,并有以下属性和方法:
①属性
width: double型,表示长方形的宽度
height:double型,表示长方形的长度
②方法
Rectangle(double w,
double h):构造函数
toString():输出矩形的描述信息,如“width=1.0,height=2.0,perimeter=6.0,area=2.0”
⑶Test类作为主类要完成测试功能
① 生成Rectangle对象
② 调用对象的toString方法,输出对象的描述信息。
⑴接口ShapeArea:
double
double
⑵类Rectangle:
①属性
width: double型,表示长方形的宽度
height:double型,表示长方形的长度
②方法
Rectangle(double
toString():输出矩形的描述信息,如“width=1.0,height=2.0,perimeter=6.0,area=2.0”
⑶Test类作为主类要完成测试功能
① 生成Rectangle对象
② 调用对象的toString方法,输出对象的描述信息。
我写的源程序如下:
import java.io.*;
interface ShapeArea{//接口定义
double
getArea();
double
getPerimeter();
}
class Rectangle implements ShapeArea{
double width ;
double
height ;
Rectangle(double x,double y){//构造方法
width=x;
height=y;
}
public double getPerimeter(){//求周长方法
return (width+height)*2;
}
public double getArea(){//求面积方法
return width*height ;
}
public String toString(){
try{
System.out.println("width="+
width + ",height="+ height +",perimeter=" + getPerimeter() +
",area=" + getArea());
return "";
}
catch(Exception e){return "";}
}
}
class Test{
public
static void main (String[] args) {
Rectangle r = new Rectangle(3.0,7.0);
r.toString();
}
}
interface ShapeArea{//接口定义
}
class Rectangle implements ShapeArea{
}
class Test{
}
查了一些文档,估计是try、catch部分出错了,然后添加了两句return才成功编译,因为指明了toString方法返回String值,但原来没返回任何值,所以出错了。看来编写程序的时候得小心一点。另外从这里发现了出现missing return
statement的错误另一种情况,为方便大家,摘录与后:
一个实现打印几个由*组成的矩形的小程序代码如下:
public class TextAreax
{
public
static int getAreax(int x,int y)
{
for(int i=0;i<x;i++)
{
for(int j=0;j<y;j++)
{
System.out.print("*");
}
System.out.println();
}
System.out.println();
}
{
}
他在定义getAreax方法时返回值类型定义为了int,而函数无返回值,这样就造成了编译无法通过的问题,把int改为void无返回值编译就顺利通过了。

加载中…