为了账号安全,请及时绑定邮箱和手机立即绑定

java 问题 可以检查下我的代码吗?

java 问题 可以检查下我的代码吗?

import java.awt.Rectangle;import java.util.*;public class ww {public static void main(String[]agrs) {        Disk d1=new Disk();        d1.setWidth(9.48);          Disk d2=new Disk();        d2.setLength(4.2);        System.out.println("area="+d1.getArea());         } } class Disk {         public double width;         public double length; public void setWidth(double w) {    width=w;}public void setLength(double len) {     length=len;}public double getWidth() {     return width;}public double getlength() {    return length;}public double getArea() {    return width*length;}public String tostring() {        return "area="+getArea();}//不知道为什么我运行后,面积的答案是area=0.0,很明显不对啊,9.48*4.2不可能是0.00啊 我是哪里写错了吗?很困惑
查看完整描述

5 回答

已采纳
?
___C___

TA贡献168条经验 获得超109个赞

Disk d1=new Disk();

       d1.setWidth(9.48);  

       Disk d2=new Disk();

       d2.setLength(4.2);

       System.out.println("area="+d1.getArea());

//你这里new了两个对象d1和d2,里面的属性成员初始化都为0

在d1你setWidth(9.48);  后width的值为9.48,而length的值仍然为0。

然后你最后计算输出的是d1,System.out.println("area="+d1.getArea());

所以结果将会是return width*length;即return 9.48*0;


d2则在代码中是打水漂的,只是d2.setLength(4.2);后,

d2中的成员属性width值为0,length值为4.2


谢谢采纳

查看完整回答
反对 回复 2018-05-06
?
___C___

TA贡献168条经验 获得超109个赞

        Disk d1=new Disk();

       d1.setWidth(9.48);  

       Disk d2=new Disk();

       d2.setLength(4.2);

       System.out.println("area="+d1.getArea());

将这里改为

        Disk d1=new Disk();

       d1.setWidth(9.48); 

       d1.setLength(4.2);

       System.out.println("area="+d1.getArea());

将会得到你想要的效果


查看完整回答
反对 回复 2018-05-06
?
半枯

TA贡献101条经验 获得超45个赞

public static void main(String[]agrs) {

       Disk d1=new Disk();

       d1.setWidth(9.48);  

       Disk d2=new Disk();

       d2.setLength(4.2);

       System.out.println("area="+d1.getArea());

}

加粗的地方错了,你创建的是2个对象,d1{width:9.48,length:0},d2{width:0,length:4.2}

下面你应该知道该怎么写了

查看完整回答
反对 回复 2018-05-06
  • 5 回答
  • 1 关注
  • 2291 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信