| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 849 人关注过本帖
标题:java小问题
只看楼主 加入收藏
不再
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-9-30
收藏
 问题点数:0 回复次数:10 
java小问题

三.编程题
1.编写一个完整的Java 程序。包含接口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方法,输出对象的描述信息

下面是我写的答案
interface ShapeArea //接口
{
double getArea();
double getPerimeter();
}

class Rectangle implements ShapeArea //类
{
double width,height;
Rectangle(double w,double h)
{ width=w;
height=h;
}
double getArea()
{ double area;
area=width*height;
return area;
}
double getPerimeter()
{ double perimeter;
perimeter=2*width*height;
return perimeter;
}
void toString()
{ System.out.println("width="+width+","+"height="+height+","+"/n"
+"perimeter="+getPerimeter()+","+"area="+getArea());
}
}

class Test
{
public static void main(String args[])
{
Rectangle test=new Rectangle(4,6);
test.toString();
}
}

但是编译是提示
F:\>javac Test.java
Test.java:19: Rectangle 中的 getPerimeter() 无法实现 ShapeArea 中的 getPerimeter
();正在尝试指定更低的访问权限;为 public
double getPerimeter()
^
Test.java:14: Rectangle 中的 getArea() 无法实现 ShapeArea 中的 getArea();正在尝
试指定更低的访问权限;为 public
double getArea()
^
Test.java:24: Rectangle 中的 toString() 无法覆盖 java.lang.Object 中的 toString(
);正在尝试指定更低的访问权限;为 public
void toString()
^
3 错误

谁能help me?先谢谢先

搜索更多相关主题的帖子: java 
2007-10-16 16:38
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
你在那几个方法前面加上public就行了,但是toString()的返回值应该是String而不是void

I'm here, as always...
2007-10-16 16:42
wcbts520
Rank: 1
等 级:新手上路
帖 子:86
专家分:7
注 册:2007-10-11
收藏
得分:0 
2楼说得对!!!
2007-10-16 16:48
不再
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-9-30
收藏
得分:0 
先谢谢先
不过现在问题是
F:\>javac Test.java
Test.java:27: 缺少返回语句
}
^
1 错误

我都找不到哪里缺了
哎真是

2007-10-16 17:01
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 

你把toString方法的返回值改为了String,所以在这个方法里面要加一句return啊


I'm here, as always...
2007-10-16 17:11
不再
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-9-30
收藏
得分:0 
我真是粗心啊
得换一款编译器了

2007-10-16 17:46
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
......

I'm here, as always...
2007-10-16 17:48
hjlwlyhjl
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2006-12-6
收藏
得分:0 
还要值得注意的是,题目要求是求周长! 所以:perimeter=2*(width+height);

2007-10-17 17:35
batwyx
Rank: 1
等 级:新手上路
威 望:1
帖 子:88
专家分:0
注 册:2007-4-16
收藏
得分:0 
接口是abstract类型的,接口里的方法默认是abstract的,实现时应声明方法的访问权限

2007-10-17 21:55
batwyx
Rank: 1
等 级:新手上路
威 望:1
帖 子:88
专家分:0
注 册:2007-4-16
收藏
得分:0 
interface ShapeArea{
double getArea();
double getPerimeter();
}

class Rectangle implements ShapeArea{
private double width,height;

Rectangle(double w,double h){
width=w;
height=h;
}

public double getArea(){
return width*height;
}

public double getPerimeter(){
return 2*(width+height);
}

public String toString(){
return "width="+width+","+"height="+height+","+"area="+getArea()+","+"perimeter="+getPerimeter();
}
}

public class Problem1{
public static void main(String[] args){
Rectangle rec=new Rectangle(2.5,3.2);
System.out.println(rec.toString());
}
}

2007-10-17 22:42
快速回复:java小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015495 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved