为什么说 我需要为class interface或enum import java.awt.*;import java.applet.*;要怎么改
classShape1{privateintx;privateinty;publicvoidsetx(intx){this.x=x;}publicintgetx(){re...
class Shape1
{
private int x;
private int y;
public void setx(int x)
{this.x=x;}
public int getx()
{return x;}
public void sety(int x)
{this.y=y;}
public int gety()
{return y;}
public int area()
{return 0;}
public Shape1(){}
public Shape1(int x,int y)
{
this.x=x;
this.y=y;
}
}
class Circle extends Shape1
{
private int radius;
double PI=3.1415926;
public Circle(){}
public Circle(int x,int y,int radius)
{
super(x,y);
this.radius=radius;
}
public void setRadius(int r)
{radius=r;}
public int getRadius()
{return radius;}
public int area()
{
int s=(int)(PI*radius*radius);
return s;
}
}
class Rectangle extends Shape1
{
private int length;
private int width;
public Rectangle(){};
public Rectangle(int x,int y,int length,int width)
{
super(x,y);
this.length=length;
this.width=width;
}
public void setLength(int l)
{length=l;}
public void setWidth(int w)
{width=w;}
public int getLength()
{return length;}
public int getWidth()
{return width;}
public int area()
{
int s=(int)(width*length);
return s;
}
}
import java.awt.*;
import java.applet.*;
public class Exp3_1 extends Applet
{
public void paint(Graphics g)
{
Circle c=new Circle(10,10,75);
g.drawOval(10,10,c.getRadius()*2,c.getRadius()*2);
g.drawString("面积为:"+c.area(),c.getx()+c.getRadius()/2, c.gety()+getRadius());
Rectangle r=new Rectangle(200,10,150,180);
g.drawOval(200,10,r.getLength()*2,r.getWidth()*2);
g.drawString("面积为:"+r.area(),r.getx()+r.getLength()/2, r.gety()+getWidth());
}
} 展开
{
private int x;
private int y;
public void setx(int x)
{this.x=x;}
public int getx()
{return x;}
public void sety(int x)
{this.y=y;}
public int gety()
{return y;}
public int area()
{return 0;}
public Shape1(){}
public Shape1(int x,int y)
{
this.x=x;
this.y=y;
}
}
class Circle extends Shape1
{
private int radius;
double PI=3.1415926;
public Circle(){}
public Circle(int x,int y,int radius)
{
super(x,y);
this.radius=radius;
}
public void setRadius(int r)
{radius=r;}
public int getRadius()
{return radius;}
public int area()
{
int s=(int)(PI*radius*radius);
return s;
}
}
class Rectangle extends Shape1
{
private int length;
private int width;
public Rectangle(){};
public Rectangle(int x,int y,int length,int width)
{
super(x,y);
this.length=length;
this.width=width;
}
public void setLength(int l)
{length=l;}
public void setWidth(int w)
{width=w;}
public int getLength()
{return length;}
public int getWidth()
{return width;}
public int area()
{
int s=(int)(width*length);
return s;
}
}
import java.awt.*;
import java.applet.*;
public class Exp3_1 extends Applet
{
public void paint(Graphics g)
{
Circle c=new Circle(10,10,75);
g.drawOval(10,10,c.getRadius()*2,c.getRadius()*2);
g.drawString("面积为:"+c.area(),c.getx()+c.getRadius()/2, c.gety()+getRadius());
Rectangle r=new Rectangle(200,10,150,180);
g.drawOval(200,10,r.getLength()*2,r.getWidth()*2);
g.drawString("面积为:"+r.area(),r.getx()+r.getLength()/2, r.gety()+getWidth());
}
} 展开
展开全部
因为类"Exp3_1 "继承自Applet,虚拟机要能认识Applet是什么就需要引入对Applet解释说明的地址,也就是这个Applet类定义的地址"import java.applet.*;"
因为你在"Exp3_1 "类的"paint(Graphics g)"的方法中调用了SWING的绘图类和接口相关的定义,所以需要引入"import java.awt.*;"。这里的*表示所有的, "java.awt.*"就表示在"java.awt"下面的所有的类和接口,以及枚举都被引入。如果你移除上面的两个import,那么编译器就不能识别Applet,Graphics,Circle,Rectangle等类。
有什么问题可以私信或邮件和我交流。
因为你在"Exp3_1 "类的"paint(Graphics g)"的方法中调用了SWING的绘图类和接口相关的定义,所以需要引入"import java.awt.*;"。这里的*表示所有的, "java.awt.*"就表示在"java.awt"下面的所有的类和接口,以及枚举都被引入。如果你移除上面的两个import,那么编译器就不能识别Applet,Graphics,Circle,Rectangle等类。
有什么问题可以私信或邮件和我交流。
更多追问追答
追问
应该怎么改,才能正常运行
追答
我看你的代码就是缺少一个“getRadius”的方法,其他的都是OK的啊?代码编译上就只存在这个问题!
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询