题目:定义一个矩形类,包含有长length、宽width两种属性,构造方法(要求写出初始化长和宽)和计算面积方法findArea()(实现返回面积值)。
编写一个长方体类,继承自矩形类,具有长length、宽width、高height属性,构造方法和计算体积的方法findVolume()(实现返回体积值)。
编写一个测试类Test,对以上两个类进行测试,通过调用其构造方法创建一个长方体对象(其中长length为2、宽width为5、高height为7),要求输出其底面积和体积。我自己弄了2小时。。请大家不要笑
才弄出来,但是我总觉得我这种代码是脱裤子放屁--多此一举类型,肯定有所不对(虽然能算出结果)
请大家帮我看看
class Juxing
{
int leght;
int width;
int mj;
public Juxing(int a,int b)
{
leght=a;
width=b;
mj=leght*width;
}
public int findarea()
{
return mj;
}
}
class Changfang extends Juxing
{
int height;
int tj; public Changfang(int c)
{
super(2,5);
height=c;
tj=mj*height;
}
public int findvolume()
{
return tj;
}
}class Test
{
public static void main(String[] args)
{
Changfang cf=new Changfang(7);
Juxing jx=new Juxing(2,5);
System.out.println("底面积="+jx.findarea());
System.out.println("体积="+cf.findvolume());
}
}
我就是奇怪了super(2,5)
和 Juxing jx=new Juxing(2,5)
不是重复了??但是我不定义super 的参数又不行。。实在搞不懂啊~~~
编写一个长方体类,继承自矩形类,具有长length、宽width、高height属性,构造方法和计算体积的方法findVolume()(实现返回体积值)。
编写一个测试类Test,对以上两个类进行测试,通过调用其构造方法创建一个长方体对象(其中长length为2、宽width为5、高height为7),要求输出其底面积和体积。我自己弄了2小时。。请大家不要笑
才弄出来,但是我总觉得我这种代码是脱裤子放屁--多此一举类型,肯定有所不对(虽然能算出结果)
请大家帮我看看
class Juxing
{
int leght;
int width;
int mj;
public Juxing(int a,int b)
{
leght=a;
width=b;
mj=leght*width;
}
public int findarea()
{
return mj;
}
}
class Changfang extends Juxing
{
int height;
int tj; public Changfang(int c)
{
super(2,5);
height=c;
tj=mj*height;
}
public int findvolume()
{
return tj;
}
}class Test
{
public static void main(String[] args)
{
Changfang cf=new Changfang(7);
Juxing jx=new Juxing(2,5);
System.out.println("底面积="+jx.findarea());
System.out.println("体积="+cf.findvolume());
}
}
我就是奇怪了super(2,5)
和 Juxing jx=new Juxing(2,5)
不是重复了??但是我不定义super 的参数又不行。。实在搞不懂啊~~~
我一开始用length=a
出现错误了
Juxing jx=new Juxing(2,5) //这只是实例化Juxing 类而已~,
不是重复了??但是我不定义super 的参数又不行。。实在搞不懂啊~~~
我写的整个程序还是对的咯?
Juxing jx=new Juxing(2,5)//我知道这个是实例化Juxing类。但是不是也同时在传参吗?
那这里要传参,上面那个super(2,5)也是传参。。是不是这种程序都是要这样都得传两次的??
{
int leght;
int width;
int mj;
public Juxing(int a,int b)
{ leght=a;
width=b;
mj=leght*width;
}
public int findarea()
{
return mj;
}
}
class Changfang extends Juxing
{
int height;
int tj; public Changfang(int c)
{
super(2,5);
height=c;
tj=mj*height;
}
public int findvolume()
{
return tj; }
} class Test
{
public static void main(String[] args)
{
Changfang cf=new Changfang(7);
Juxing jx=new Juxing(2,5);
System.out.println("底面积="+jx.findarea());
System.out.println("体积="+cf.findvolume());
}
} 帮LZ重新发下代码,看的好不舒服
class Juxing
{
protected int leght;
protected int width;
public Juxing(int a,int b)
{
leght=a;
width=b;
}
public int findarea()
{
return leght*width;
}
}
class Changfang extends Juxing
{
private int height;
public Changfang(int a,int b,int c)
{
super(a,b);
height=c;
}
public int findvolume()
{
return findarea()*height; }
} public class Test
{
public static void main(String[] args)
{
Changfang cf=new Changfang(2,5,7);
Juxing jx=new Juxing(2,5);
System.out.println("底面积="+jx.findarea());
System.out.println("体积="+cf.findvolume());
}
}
//我也是初学....
{
super(a, b);
height=c;
tj=mj*height;
}
测试代码也相应改成:Changfang cf=new Changfang(2, 5, 7);
System.out.println("底面积="+cf.findarea());
System.out.println("体积="+cf.findvolume());
我一直以为class Changfang(int c)是继承了class Juxing(int a,int b)后再补充一个int c
还是概念错误啊谢谢大家
这句话是构造一个参数的int类型的Changfang
进到构造器里面发现调用了父类的构造器super(2,5);
执行super(2,5)后
这时候只有一个对象在内存当中但是没有引用指向该对象
所以super(2,5)产生的对象就是一个垃圾
你下面还Juxing jx=new Juxing(2,5);
这时候你定义了一个jx指向一个Juxing类型的对象
明白了吗
public static void main(String[] args) {
Changfang cf = new Changfang(7);
//Juxing jx = new Juxing(2, 5);
//System.out.println("底面积=" + jx.findarea());
System.out.println("底面积=" + cf.findarea());
System.out.println("体积=" + cf.findvolume());
}
}
{
int leght;
int width;
int mj;
public Juxing(int a,int b)
{
leght=a;
width=b;
mj=leght*width;
}
public int findarea()
{
return mj;
}
}
class Changfang extends Juxing {
int height;
int tj;
public Changfang(int c,int a,int b)
{ super(a,b);
height=c;
tj=mj*height;
}
public int findvolume()
{
return tj;
}
}
class Test
{
public static void main(String[] args)
{
Changfang cf=new Changfang(7,2,5);
System.out.println("底面积="+cf.findarea());
System.out.println("体积="+cf.findvolume());
}
}