JAVA代码,编译通不过(50分)
publicinterfaceIShape{publicstaticfinaldoublePI=3.14;publicabstractdoublegetCir();//返...
public interface IShape{
public static final double PI=3.14;
public abstract double getCir(); //返回几何图形的周长
public abstract double getArea(); //返回几何图形的面积
}
public class Point{
public double x;
public doulbe y;
public Point(){
this(0,0);
}
public Point(int x,int y){
this.x=x;
this.x=y;
}}
class Circle implements IShape{
public double r,x,y;
public Circle(Point p,double r){
p.x=x;
p.y=y;
this.r=r;
}
public Circle(double r){
this((0,0),12));}
public double getArea(){
return PI*r*r;
}
public double getCircumference(){
return 2*PI*r;
}}
class Triangle implements IShape{
public double a;
public double b;
public double c;
public Triangle(double a, double b, double c) {
this.a=a;
this.b=b;
this.c=c;}
public Triangle(int a){
this(a,a,a);
}
public Triangle(){
this(3,4,5);
}
public double getArea(){
if ( (a>0 && b>0 && c>0) || (a+b>c && a+c>b && c+b>a)
reutrn 0;
else
{
double p=(a+b+c)/2;
return Math.pow(p*(p-a)*(p-b)*(p-c),0.5);} }
public double getCircumference(){
return this.a+this.b+this.c;} }
class Rectangle implements IShape{
int x1,x2,y2,y2;
int dge1=x2-x1,dge2=y2-y1;
public Rectangle(Point p1,Point p2){
p1.x=x1;
p2.x=x2;
p1.y=y1;
p2.y=y2;
}
public Rectangle(int dge1,int dge2){
this.dge1=dge1;
this.dge2=dge2;
}
public Rectangle(int dge){
this(dge,dge);}
public double getArea(){
return dge1*dge2;
}
public double getCircumference(){
return 2*(dge1+dge2);
}
}
class Main{
public staitc void main(String[] args){
Triangle 三角形1=new Triangle(3,4,1);//提示创建错误,任意两边之和不大于第三边
Triangle 三角形2=new Triangle(6);//创建一个三边均为6厘米的三角形
Triangle 三角形3=new Triangle();//创建一个三边分别为3,4,5厘米的三角形
Point 圆心1=new Point(12,12);
Circle 圆1=new Circle(圆心1,10);
Circle 圆2=new Circle(12); //
Point 矩形左顶点=new Point(12,12);
Point 矩形右下角点=new Point(22,22);
Rectangle 矩形1=new Rectangle(矩形左顶点,矩形右下角点);
int edge1=3,edge2=4;
Rectangle 矩形2=new Rectangle(edge1,edge2);
Rectangle 矩形3=new Rectangle(edge2);
System.out.println("三角形1的周长为:"+三角形1.getCircumference()+"\n三角形1的面积为:"+三角形1.getArea());
System.out.println("三角形2的周长为:"+三角形2.getCircumference()+"\n三角形2的面积为:"+三角形2.getArea());
System.out.println("三角形3的周长为:"+三角形3.getCircumference()+"\n三角形3的面积为:"+三角形3.getArea());
System.out.println("圆1的周长为:"+圆1.getCir()+"\n圆1的面积为:"+圆1.getArea());
System.out.println("圆2的周长为:"+圆2.getCir()+"\n圆2的面积为:"+圆2.getArea());
System.out.println("矩形1的周长为:"+矩形1.getCircumference()+"\n矩形1的面积为:"+矩形1.getArea());
System.out.println("矩形2的周长为:"+矩形2.getCircumference()+"\n矩形2的面积为:"+矩形2.getArea());
System.out.println("矩形3的周长为:"+矩形3.getCircumference()+"\n矩形3的面积为:"+矩形3.getArea());
}
} 展开
public static final double PI=3.14;
public abstract double getCir(); //返回几何图形的周长
public abstract double getArea(); //返回几何图形的面积
}
public class Point{
public double x;
public doulbe y;
public Point(){
this(0,0);
}
public Point(int x,int y){
this.x=x;
this.x=y;
}}
class Circle implements IShape{
public double r,x,y;
public Circle(Point p,double r){
p.x=x;
p.y=y;
this.r=r;
}
public Circle(double r){
this((0,0),12));}
public double getArea(){
return PI*r*r;
}
public double getCircumference(){
return 2*PI*r;
}}
class Triangle implements IShape{
public double a;
public double b;
public double c;
public Triangle(double a, double b, double c) {
this.a=a;
this.b=b;
this.c=c;}
public Triangle(int a){
this(a,a,a);
}
public Triangle(){
this(3,4,5);
}
public double getArea(){
if ( (a>0 && b>0 && c>0) || (a+b>c && a+c>b && c+b>a)
reutrn 0;
else
{
double p=(a+b+c)/2;
return Math.pow(p*(p-a)*(p-b)*(p-c),0.5);} }
public double getCircumference(){
return this.a+this.b+this.c;} }
class Rectangle implements IShape{
int x1,x2,y2,y2;
int dge1=x2-x1,dge2=y2-y1;
public Rectangle(Point p1,Point p2){
p1.x=x1;
p2.x=x2;
p1.y=y1;
p2.y=y2;
}
public Rectangle(int dge1,int dge2){
this.dge1=dge1;
this.dge2=dge2;
}
public Rectangle(int dge){
this(dge,dge);}
public double getArea(){
return dge1*dge2;
}
public double getCircumference(){
return 2*(dge1+dge2);
}
}
class Main{
public staitc void main(String[] args){
Triangle 三角形1=new Triangle(3,4,1);//提示创建错误,任意两边之和不大于第三边
Triangle 三角形2=new Triangle(6);//创建一个三边均为6厘米的三角形
Triangle 三角形3=new Triangle();//创建一个三边分别为3,4,5厘米的三角形
Point 圆心1=new Point(12,12);
Circle 圆1=new Circle(圆心1,10);
Circle 圆2=new Circle(12); //
Point 矩形左顶点=new Point(12,12);
Point 矩形右下角点=new Point(22,22);
Rectangle 矩形1=new Rectangle(矩形左顶点,矩形右下角点);
int edge1=3,edge2=4;
Rectangle 矩形2=new Rectangle(edge1,edge2);
Rectangle 矩形3=new Rectangle(edge2);
System.out.println("三角形1的周长为:"+三角形1.getCircumference()+"\n三角形1的面积为:"+三角形1.getArea());
System.out.println("三角形2的周长为:"+三角形2.getCircumference()+"\n三角形2的面积为:"+三角形2.getArea());
System.out.println("三角形3的周长为:"+三角形3.getCircumference()+"\n三角形3的面积为:"+三角形3.getArea());
System.out.println("圆1的周长为:"+圆1.getCir()+"\n圆1的面积为:"+圆1.getArea());
System.out.println("圆2的周长为:"+圆2.getCir()+"\n圆2的面积为:"+圆2.getArea());
System.out.println("矩形1的周长为:"+矩形1.getCircumference()+"\n矩形1的面积为:"+矩形1.getArea());
System.out.println("矩形2的周长为:"+矩形2.getCircumference()+"\n矩形2的面积为:"+矩形2.getArea());
System.out.println("矩形3的周长为:"+矩形3.getCircumference()+"\n矩形3的面积为:"+矩形3.getArea());
}
} 展开
3个回答
展开全部
错误1:Point类中 public double y;写成了public doulbe y;
错误2:Circle 实现了IShape借口,却没实现public double getCir()方法
错误3:
public Circle(double r){
this((0,0),12));}
这算什么??你是想调用public Circle(Point p, double r)构造函数?
public Circle(double r){
this(new Point(),12);
}
这么写
错误4:Triangle类中的public double getArea()方法中的if判断句
if ((a>0 && b>0 && c>0)||(a+b>c && a+c>b && c+b>a))写成了if ( (a>0 && b>0 && c>0) || (a+b>c && a+c>b && c+b>a) 少写了一个右括号
错误5:上面判断句的 下面一行 return 0写成了 reutrn 0
错误6:在Rectangle类中,声明变量行,声明了2个y2。
错误7:Main类中 public static void main(String[] args) 写成了 staitc
错误8:Main类中,你实例化Rectangle类对象,但是你将Rectangle类设置成抽象的,则不可以直接实例化,要么你把Rectangle的abstract给去掉,并实现
public double getCir()方法,要么,你在写个子类继承Rectangle类,通过子类来实例化Rectangle对象
错误2:Circle 实现了IShape借口,却没实现public double getCir()方法
错误3:
public Circle(double r){
this((0,0),12));}
这算什么??你是想调用public Circle(Point p, double r)构造函数?
public Circle(double r){
this(new Point(),12);
}
这么写
错误4:Triangle类中的public double getArea()方法中的if判断句
if ((a>0 && b>0 && c>0)||(a+b>c && a+c>b && c+b>a))写成了if ( (a>0 && b>0 && c>0) || (a+b>c && a+c>b && c+b>a) 少写了一个右括号
错误5:上面判断句的 下面一行 return 0写成了 reutrn 0
错误6:在Rectangle类中,声明变量行,声明了2个y2。
错误7:Main类中 public static void main(String[] args) 写成了 staitc
错误8:Main类中,你实例化Rectangle类对象,但是你将Rectangle类设置成抽象的,则不可以直接实例化,要么你把Rectangle的abstract给去掉,并实现
public double getCir()方法,要么,你在写个子类继承Rectangle类,通过子类来实例化Rectangle对象
展开全部
肯定通不过了一方面是main函数必须放在公共类里面另一方面是你里面的PI应该改为Math.PI改一下看能不能运行再说。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Point
class Circle implements IShape{
public double r,x,y;
public Circle(Point p,double r){
p.x=x;
p.y=y;
this.r=r;
}
public Circle(double r){
this((0,0),12));}
你在构造的时候顺序反了 虽然不影响运行,但构造还是规范点。
point是类,重载构造的时候this(0,0)将找不到构造方法,可以用this (new point(),0) 。
class Circle implements IShape{
public double r,x,y;
public Circle(Point p,double r){
p.x=x;
p.y=y;
this.r=r;
}
public Circle(double r){
this((0,0),12));}
你在构造的时候顺序反了 虽然不影响运行,但构造还是规范点。
point是类,重载构造的时候this(0,0)将找不到构造方法,可以用this (new point(),0) 。
追问
不懂,能讲详细点不
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询