A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lyg2013 中级黑马   /  2013-4-12 21:18  /  1610 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 lyg2013 于 2013-4-13 01:50 编辑
  1. public abstract class Shape{
  2.                 protected Point location;
  3.                 /*
  4.                  * 抽象方法,图像可以计算面积
  5.                  * 具体计算过程不清楚。*/
  6.                 public abstract double area();
  7.                 public boolean contains (Point p){
  8.                         return contains(p.x,p.y);
  9.                 }
  10.                 public abstract boolean contains(int x,int y);
  11.         }
  12.         /**
  13.          *圆是具体类 ,继承图形必须实现图形中的所有抽象方法
  14.          *图形的抽象方法是子类的约定,约定子类具有一致的公共外观
  15.          *(一定包含area()和contains(int x,int y)方法)
  16.          * @param args
  17.          */
  18.         public class Circle extends Shape{
  19.                 private int r;
  20.                 public Circle(int x,int y,int r){
  21.                         location = new Point(x,y);
  22.                         this.r = r;
  23.                 }
  24.                 //实现shape中约定的方法
  25.                 public double area() {
  26.                         // TODO Auto-generated method stub
  27.                         return Math.PI*r*r;
  28.                 }
  29.                 //实现shape中约定的方法
  30.                 public boolean contains(int x, int y) {
  31.                         return this.location.distance(x,y)<=r;
  32.                 }
  33.    }
  34.         public class ShapeDemo {
  35.               public static void main(String[] args) {
  36.                //代词可以是抽象的,东西必须是具体的
  37.                 Shape s = new Circle(5,6,4);
  38.                         Point p = new Point(7,8);
  39.                         System.out.println(s.area());
  40.                         System.out.println(s.contains(p));
  41.                 }

  42.         }
复制代码
怎么编译通不过呢?Circle 和Shape处显示错误。

4 个回复

倒序浏览
错误:
1.一个java源文件中只能有一个public修饰的类
2.这里用到Point类,如果不想写导入的话->在所有Point前面加上 java.awt.Point
  当让可以在程序开始处 加上 import java.awt.Point;

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
楼上正解,编译可以通过了。
回复 使用道具 举报
张洪慊 发表于 2013-4-12 21:34
错误:
1.一个java源文件中只能有一个public修饰的类
2.这里用到Point类,如果不想写导入的话->在所有Point前 ...

            谢了
回复 使用道具 举报

如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马