使用抽象类写一个shape类出错了。错误信息:需要 ".class",不是语句,需要 ";"等

wx3046 2009-04-09 12:06:34
大家帮我看下这是什么错误,谢谢

代码:
//定义一个抽象Shape类
abstract class Shape {
int area;//面积
int perim;//周长
void getArea();
void getPerim();
}

//继承Shape类,定义Rectangle类
class Rectangles extends Shape
{
int length = 3,width = 4;

public void getArea(){
area = length * width;
System.out.println("Rectangle's area : " + area);
}

public void getPerim(){
perim = 2 * (length + width);
System.out.println("Rectangle's area : " + perim);
}
}

//继承Shape类,定义Cirle类
class Circle extends Shape
{
int r = 2;
float PI = 3.14;

public void getArea(){
area = int(PI * r *r);
System.out.println("Circle's area : " + area);
}

public void getPerim(){
perim = int(2 * PI * r);
System.out.println("Circle's perim : " + perim);
}
}

//继承Rectangle类,定义Square类

class ShapeClass
{
public static void main(String[] args){

System.out.println("Test Shape:");

Rectangles r = new Rectangles();
r.getArea();
r.getPerim();

Circle c = new Circle();
c.getArea();
c.getPerim();

// Square s = new Square();
// s.getArea();
// s.getPerim();
}
}





错误提示:
---------- javac ----------
ShapeClass.java:32: 需要 ".class"
area = int(PI * r *r);
^
ShapeClass.java:32: 不是语句
area = int(PI * r *r);
^
ShapeClass.java:32: 需要 ';'
area = int(PI * r *r);
^
ShapeClass.java:37: 需要 ".class"
perim = int(2 * PI * r);
^
ShapeClass.java:37: 不是语句
perim = int(2 * PI * r);
^
ShapeClass.java:37: 需要 ';'
perim = int(2 * PI * r);
^
6 错误

输出完成 (耗时: 0 秒)
...全文
133 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ty_tarena_pger 2009-04-09
  • 打赏
  • 举报
回复
Test Shape:
Rectangle's area : 12
Rectangle's area : 14
Circle's area : 12.56
Circle's perim : 12.56
ty_tarena_pger 2009-04-09
  • 打赏
  • 举报
回复
唉,我啥也不说了,基础实在是太那个了,好好努力吧

public abstract class Shape {
int area;// 面积

int perim;// 周长

abstract void getArea();

abstract void getPerim();
}


public class Circle extends Shape {
int r = 2;

static final double PI = 3.14;

public void getArea() {
double area = PI * r * r;
System.out.println("Circle's area : " + area);
}

public void getPerim() {
double perim = 2 * PI * r;
;
System.out.println("Circle's perim : " + perim);
}
}


public class Rectangles extends Shape {
int length = 3, width = 4;

public void getArea() {
area = length * width;
System.out.println("Rectangle's area : " + area);
}

public void getPerim() {
perim = 2 * (length + width);
System.out.println("Rectangle's area : " + perim);
}

}


public class ShapeClass {
public static void main(String[] args) {

System.out.println("Test Shape:");

Rectangles r = new Rectangles();
r.getArea();
r.getPerim();

Circle c = new Circle();
c.getArea();
c.getPerim();

// Square s = new Square();
// s.getArea();
// s.getPerim();
}
}
wx3046 2009-04-09
  • 打赏
  • 举报
回复
嗯,确实抽象方法那和类型转换那错了。谢谢两位
huangan0301 2009-04-09
  • 打赏
  • 举报
回复

abstract class Shape {
int area;//面积
int perim;//周长
void getArea();
void getPerim();
}

你这是抽象类不是接口,抽象类中的方法不写abstract不会默认加abstract,你需要自己加上,你改为

public abstract void getArea();
public abstract void getPerim();
试试
twinsken 2009-04-09
  • 打赏
  • 举报
回复
抽象类中的抽象方法也要声明 类型转换错误
改后的为
abstract class Shape {
int area;//面积
int perim;//周长
abstract void getArea();
abstract void getPerim();
}

//继承Shape类,定义Rectangle类
class Rectangles extends Shape
{
int length = 3,width = 4;

public void getArea(){
area = length * width;
System.out.println("Rectangle's area : " + area);
}

public void getPerim(){
perim = 2 * (length + width);
System.out.println("Rectangle's area : " + perim);
}
}

//继承Shape类,定义Cirle类
class Circle extends Shape
{
int r = 2;
float PI = (float) 3.14;

public void getArea(){
area = (int) (PI * r *r);
System.out.println("Circle's area : " + area);
}

public void getPerim(){
perim = (int) (2 * PI * r);
System.out.println("Circle's perim : " + perim);
}
}

//继承Rectangle类,定义Square类

class ShapeClass
{
public static void main(String[] args){

System.out.println("Test Shape:");

Rectangles r = new Rectangles();
r.getArea();
r.getPerim();

Circle c = new Circle();
c.getArea();
c.getPerim();

// Square s = new Square();
// s.getArea();
// s.getPerim();
}
}

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧