listview adapter:一道Java编程题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 21:41:21
class Circle{
double R;
Circle(){
R=0;
}
double changeR(double r){
R=r;
}
double getR()
{return R;
}
double area(double r)
{double s;
s=3.14*R*R;
}
double getarea()
{return s;
}
double length(double r)
{double l;
l=2*3.14*R;
}
double getlength()
{return l;
}
}
public class yuan{
public static void main(String args[]){
Circle c=new Circle();
c.changeR(5.5);
c.area(5.5);
c.length(5.5);
System.out.println("半径为:"+c.R);
System.out.println("半径为:"+c.getR());
System.out.println("面积为:"+c.getarea());
System.out.println("周长为:"+c.getlength());
}
}
这题到底错在哪了,为什么一编译就提示
G:\Java程序\yuan.java:17: 找不到符号
符号: 变量 s
位置: 类 Circle
{return s;
^
G:\Java程序\yuan.java:24: 找不到符号
符号: 变量 l
位置: 类 Circle
{return l;
到底怎么回事,请高手帮帮忙! ^

仨错误,师弟。
double area(double r)
{double s;
s=3.14*R*R;
}
double length(double r)
{double l;
l=2*3.14*R;
}

把 double 改成 void,
另外,还有一个错误没显示出来,是因为你没有调用,如果你调用了,编译也会给你提示。
那就是double getlength()
{return l;
}
你返回的l变量不存在,因为你在定议l变量时是定议的局域变量,就是在 double length(double r)
{double l;
l=2*3.14*R;
}
里边定议的,所以呢,这也是个错误的。解决方法就是把double l; 这一句剪到构造函数里或和double R; 的地方一块声明就OK了

double changeR(double r){
R=r;
}
double area(double r)
{double s;
s=3.14*R*R;
}

double length(double r)
{double l;
l=2*3.14*R;
}

这些函数不是构造函数 没有return任何东东阿 或者把返回值double改成void

getarea() 没在area(double r) 里声明..

代码真的很烂,一点都没有体现出面向对象的思想,错也是错得太离谱。

class Circle{
double r;//为什么要用大写,不符合Java命名规范
double s;
double l;

Circle(){
this.r=0;
}
void setR(double r){ //set也是Java规范推荐的用法
this.r=r; //这个方法没必要返回值
}
double getR()
{return r;
}
void area()//根据你的意思,area()是不要参数的
{
s=3.14*r*r;
}
double getArea()
{return s;
}
void length() //同上,不要参数
{
l=2*3.14*r;
}
double getLength()
{return l;
}
}
public class yuan{
public static void main(String args[]){
Circle c=new Circle();
c.setR(5.5);
c.area();
c.length();
System.out.println("半径为:"+c.r);
System.out.println("半径为:"+c.getR());
System.out.println("面积为:"+c.getArea());
System.out.println("周长为:"+c.getLength());
}
}

JDK5.0下测试通过:
半径为:5.5
半径为:5.5
面积为:94.985
周长为:34.54