你的void Circle(Point A,double diam)--------这不是一个构造方法,他是void型的普通方法.构造方法不应有返回值.-----也就是说
myshape[3]=new Circle(A,diam)-------不能生成一个正确的对象.
而你的myshape[3]=new Circle(A,diam);/*这具有毛病*/
用的应该是一个Circle类的构造方法.
怀疑是你的void 应该去掉.Circle(Point A,double diam).
myshape[3]=new Circle(A,diam)-------不能生成一个正确的对象.
而你的myshape[3]=new Circle(A,diam);/*这具有毛病*/
用的应该是一个Circle类的构造方法.
怀疑是你的void 应该去掉.Circle(Point A,double diam).
行.这该如何是好?package myshapes;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/class Point { public Point() {x=0;y=0;
}
public Point(double x,double y){
this.x=x;this.y=y;
}
public double distance (point Z){
double a=(this.x-Z.x)*(this.x-Z.x)+(this.y-Z.y)*(this.y-Z.y);
return Math.sqrt(a);
}
public static double distance (point M,point N){
double a=(M.x-N.x)*(M.x-N.x)+(M.y-N.y)*(M.y-N.y);
return Math.sqrt(a);
}
private double x,y;
------------------------------------------------------------------
package myshapes;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/class Shape {
private double length;
private double area;
}
-----------------------------------------------------
package myshapes;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/public interface Shapetools {
double PI=3.14;
void getLength(Shape shape){}
void getArea(Shape shape){}
}
------------------------------------------------------
package myshapes;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/
import myshapes.*;
class Circle extends Shape implements Shapetools{
Point A;
double diam;
public Circle(){
this.A=new Point(0,0);
diam=0;
}
public Circle(Point A,double diam){
this.A=new Point();
this.A.x=A.x;
this.A.y=A.y;
this.diam=diam;
}
public void getLength(){
length=PI*2*diam;
System.out.printIn("the leng of the circle is"+leng);
}
public void getArea(){
area=PI*diam*diam;
System.out.printIn("the area of the circle is"+area);
}}
-------------------------------------------------------------
package myshapes;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/
import myshapes.*;
class Rect extends Shape implements Shapetools{
Point A,B;
public Rect (){
A=new Point(0,0);
B=new Point(1,1);
}
public Rect(Point A,Point B){
this.A=new Point();
this.B=new Point();
this.A.x=A.x;
this.A.y=A.y;
this.B.x=B.x;
this.B.Y=B.y;
}
public void getLength(){
double a=Math.abs(A.x-B.x);
double b=Math.abs(A.y-B.y);
length=2*(a+b);
System.out.printIn("the length of the rectangle is"+length);
}
public void getArea(){
double a=Math.abs(A.x-B.x);
double b=Math.abs(A.y-B.y);
area=a*b;
System.out.printIn("the area of the rectangle is"+area);
}
}
---------------------------------------------------------------
package myshapes;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/
import myshapes.*;
class Myshapes {
private static Point A=new Point();
private static Point B=new Point(2,2);
public static void main(String Args[]){
InputStreamReader ir;
BufferedReader in;
ir=new InputStreamReader(System.in);
in=new BufferedReader(ir);
System.out.printIn("please input the diam:");
String s=In.readLine();
double diam=Integer.parseInt(s);
Shape myshape[]=new Shape[4];
myshape[0]=new Rect();
myshape[1]=new Rect(A,B);
myshape[2]=new Circle();
myshape[3]=new Circle(A,diam);//这句有毛病
for(int i=0;i<4;i++)myshape[i].getLength;//这句有毛病
for(int i=0;i<4;i++)myshape[i].getArea;
}
}
_______________________________________________________________
你试一下?
信息是:
not an expression statement in line __(即第一句)
not an expression statement in line __(即第二句)
public static final double PI=3.14;
void getLength();
void getArea();
}
myshape[3]=new Circle(A,diam);//这句有毛病
for(int i=0;i<4;i++)
myshape[i].getLength();//这句有毛病
for(int i=0;i<4;i++)
myshape[i].getArea();
for(int i=0;i<4;i++)myshape[i].getLength();
for(int i=0;i<4;i++)myshape[i].getArea();