| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1114 人关注过本帖
标题:只问一个简单问题!!求解释。
只看楼主 加入收藏
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
结帖率:84.21%
收藏
已结贴  问题点数:0 回复次数:7 
只问一个简单问题!!求解释。
class Circle
{
   
    double x,y,r;
    final double PI=3.1415926;
    double Perimeter,Area;
   
    //构造方法初始化
    public Circle(double x,double y,double r)
    {
        this.x=x;
        this.y=y;
        this.r=r;
    }
   
    //周长
    public double getPerimeter()
    {
        this.Perimeter=2*PI*r;
        return this.Perimeter;
    }
    //面积
    public double getArea()
    {
        this.Area=PI*r*r;
        return this.Area;
    }
   
}

public class Cylinder extends Circle
{
    int high;
    double area;
    double volume;
    public Cylinder(int high)
    {
        super(2.0,3.0,50); //这一句如果不加,则显示找不到符号.是因为继承里面`子类与父类必须的构造方法?调用?这里有点含糊.望细解.
        this.high=high;
    }   
    //设置高.
    public void setHigh(int high)
    {
        this.high=high;
    }
    //获取高.
    protected int getHigh()
    {
        return this.high;
    }
    //计算表面积
    public void getArea(Circle p1)
    {
        area=p1.getArea()*2+p1.r*2+high;
    }
    //计算体积
    public void getVolume(Circle p1)
    {
        volume=p1.getArea()*high;
    }
    public static void main(String []args)
    {
        Cylinder px=new Cylinder(20);
        Circle pxy=new Circle(1.0,2.0,3.0);
        px.setHigh(15);
        px.getArea(pxy);
        System.out.println("表面积:"+px.area);
        px.getVolume(pxy);
        System.out.println("体积:"+px.volume);
    }
   

}

/*
 
 **/
搜索更多相关主题的帖子: public double return class final 
2011-10-11 22:34
husiwen
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:227
专家分:1125
注 册:2010-5-23
收藏
得分:4 
不加的话。。x y r就得不到值
2011-10-11 23:04
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
收藏
得分:0 
回复 2楼 husiwen
我主函数main()
开头 有这句话`调用父类的构造方法。
      Circle pxy=new Circle(1.0,2.0,3.0);
2011-10-11 23:17
husiwen
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:227
专家分:1125
注 册:2010-5-23
收藏
得分:11 
回复 3楼 默默学习
你的new Circle()写在main()中。。那么你要实现可以在Cylinder里写个构造方法是Cylinder(Cirlce c,...)
2011-10-12 22:38
默默学习
Rank: 4
等 级:业余侠客
帖 子:134
专家分:200
注 册:2010-6-22
收藏
得分:0 
回复 4楼 husiwen
(1.)在父类中添加默认构造方法.
(2.)在子类中添加构造方法首句中添加super调用父类构造方法.
因为继承概念中: 构造一个子类的时候,编译器会自动调用父类默认构造方法,然而已经设置了有参构造方法,所以系统提示找不到符号.
则可以用(1.)在父类中添加默认构造方法. 或者在子类中添加构造方法,利用super语句调用父类构造方法.

你觉得这个解释怎么样,.
2011-10-12 22:47
wtuaimmmm
该用户已被删除
收藏
得分:17 
提示: 作者被禁止或删除 内容自动屏蔽
2011-10-13 17:23
husiwen
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:227
专家分:1125
注 册:2010-5-23
收藏
得分:13 
回复 5楼 默默学习
交类的构造是无参的。就能自动调用,有参的你就必须给它参数  就是用super
2011-10-13 20:01
不知道二号
Rank: 2
等 级:论坛游民
帖 子:6
专家分:15
注 册:2011-6-19
收藏
得分:15 
了类继承父类,若子类的构造函数中没有super()函数,则子类的构造函数中会默认调用父类中的无参构造函数,而父类构造函数中没有无参,故编译时不通过~~
2011-10-15 13:26
快速回复:只问一个简单问题!!求解释。
数据加载中...
 
   



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

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