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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Do、 中级黑马   /  2016-3-9 11:59  /  766 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目:创建一个抽象类shape,这个类里面包含3个成员变量和两个抽象方法,
抽象方法分别是求周长和面积,创建两个子类圆、长方形,在子类当中,实现抽象方法,
求出圆和长方形的面积和周长,然后再定一个主类Test,通过实例化对象输出长方形和圆的面积和周长
//测试类
public class Test {
         public static void main(String[] args) {
          Circle circle = new Circle();
          circle.setd(4);
          System.out.println("圆的面积是" + circle.doublearea());
          Rect rect = new Rect();
          rect.setLenWid(3, 4);
          System.out.println("矩形的面积是" + rect.doublearea());
         }

        }
//抽象类
public abstract class Shape {
        abstract double doublearea();
}

// 圆类
class Circle extends Shape {
        public double r;

        double doublearea() {
                return 3.14 * r * r;
        }

        void setd(double R) {
                r = R;
        }
}

// 矩形类
class Rect extends Shape {
        double length;

        double width;

        double doublearea() {

                return length * width;
        }

        void setLenWid(double Length, double Width) {
                length = Length;
                width = Width;
        }
}


以上是求面积的答案,但是还要求周长  又怎么做呢    在那里嵌入求周长的代码比较好呢?
还有就是    //圆类中的        void setd(double R) {
                r = R;    这些代码是什么意思 ?
               // 矩形类中的
               void setLenWid(double Length, double Width) {
                length = Length;
                width = Width;
             这些代码又是什么意思?

8 个回复

倒序浏览
在线等    急。。。。。。。。。。。。。。
回复 使用道具 举报
都没人吗?
回复 使用道具 举报
R是传进来的参数,赋给园里面的半径,就相当于你给我一个R,我函数里面的r半径就是你给的,下面的赋值语句一个意思,求
回复 使用道具 举报
liu1097974712 发表于 2016-3-9 12:45
R是传进来的参数,赋给园里面的半径,就相当于你给我一个R,我函数里面的r半径就是你给的,下面的赋值语句 ...

那void setd(double R)是什么意思呢
回复 使用道具 举报
周长写在各自的类里面,矩形
double cir()
{
     return (length+width)*2;//圆返回:return 3.14*2*r;
}
回复 使用道具 举报
liu1097974712 发表于 2016-3-9 12:51
周长写在各自的类里面,矩形
double cir()
{

嗯,好的  谢谢  我去摸索一下
回复 使用道具 举报
Do、 发表于 2016-3-9 12:47
那void setd(double R)是什么意思呢

是圆里面的方法呀(函数),没返回值,接受一个你给的值,就可以带到下面的圆公式里面运算返回了;
比如,setd(3);就是给他一个半价为3的值,下面就可以带入运算了
回复 使用道具 举报
liu1097974712 发表于 2016-3-9 12:56
是圆里面的方法呀(函数),没返回值,接受一个你给的值,就可以带到下面的圆公式里面运算返回了;
比如 ...

嗯,好,明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马