| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 383 人关注过本帖
标题:有关clone接口的问题
只看楼主 加入收藏
简Greensoul
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2011-11-13
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:1 
有关clone接口的问题
设计一个点Point类,圆类Circle继承点类,分别实现clone方法,实现一个测试类来实现Circle的自我复制。(提示:实现clone接口)


public class Point implements Cloneable
{
    private int x;
    private int y;
    public Point()
    {
    }
    public Point(int X, int Y)
    {
        x=X;
        y=Y;
    }
    public void setX(int X)
    {
        x=X;
    }
    public void setY(int Y)
    {
        y=Y;
    }
    public int getX()
    {
        return x;
    }
    public int getY()
    {
        return y;
    }
    public Object clone()
    {
        Point obj=null;
        try
        {
            obj =(Point)super.clone();
        }
        catch (CloneNotSupportedException e)
        {
            e.printStackTrace();
        }
        return obj;
    }
}

public class Circle extends Point implements Cloneable
{
    private int r;
    public Circle()
    {
    }
    public void setR(int R)
    {
        r=R;
    }
    public int getR()
    {
        return r;
    }
    public Object clone()
    {
        Circle o=null;
        try
        {
            o =(Circle)super.clone();
        }
        catch (CloneNotSupportedException e)
        {
            e.printStackTrace();
        }
        return o;
    }
}
  Point类编译成功,但Circle类失败了,显示:
在相应的try语句主体中不能抛出异常  java.lang.CloneNotSuppotedException
搜索更多相关主题的帖子: void 测试 private public return 
2012-04-28 22:02
ab1034982749
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:215
专家分:1185
注 册:2012-4-14
收藏
得分:10 
因为你定Circle类继承了Point类,并且在Point类中你重写了吗clone方法,并且在该方法中抛出的异常你已经进行了处理,所以在Circle中不需再对异常出处理,因为一旦产生异常,就会在其父类中的clone方法中处理,就不会再抛出异常。所以只要把Circle中定义的clone中的异常处理器去掉就行了。
希望你能理解
2012-05-02 20:29
快速回复:有关clone接口的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016922 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved