永发信息网

java程序运行结果怎么是这样呢?

答案:6  悬赏:0  手机版
解决时间 2021-04-30 05:27
  • 提问者网友:萌卜娃娃
  • 2021-04-29 14:11

// 类名,方法名,属性名 都是拼音;
public class Person
{
//属性
protected String xingming;
protected int gongling;
protected int kuanggong;
protected int qingjia;
protected float xiaoshoue;

//方法
public Person(String xingming, int gongling, int kuanggong, int qingjia, float xiaoshoue)
{
this.xingming = xingming;
this.gongling = gongling;
this.kuanggong = kuanggong;
this.qingjia = qingjia;
this.xiaoshoue = xiaoshoue;
}
public Person()
{

}

public void setXingming(String xingming)
{
this.xingming = xingming;
}
public void setGongling(int gongling)
{
this.gongling = gongling;
}
public void setKuanggong(int kuanggong)
{
this.kuanggong = kuanggong;
}
public void setQingjia(int qingjia)
{
this.qingjia = qingjia;
}
public void setXiaoshoue (float xiaoshoue)
{
this.xiaoshoue = xiaoshoue;
}
public String getXingming()
{
return this.xingming;
}
public int getKuanggong()
{
return this.kuanggong;
}
public int getQingjia()
{
return this.qingjia;
}
public float getXiaoshoue()
{
return this.xiaoshoue;
}
public int getGongling()
{
return this.gongling;
}



public String tostring()
{
return ("---------------"+"\n"+
"姓名:" +this.xingming+"\n"+
"工龄:" +this.gongling+"\n"+
"旷工:" +this.kuanggong+"\n"+
"请假:" + this.qingjia+"\n"+
"销售额: " + this.xiaoshoue+"\n"+
"月薪:"+ Yuexin()+"\n"+
"--------------"+"\n");
}

public float Yuexin()
{
return (float)(700+gongling*100+xiaoshoue*0.05-kuanggong*50-qingjia*30);
}

}

public class Jingli extends Person
{
public Jingli(String xingming,int gongling,int kuanggong,int qingjia,float xiaoshoue)
{
super(xingming,gongling,kuanggong,qingjia,xiaoshoue);
}
public String tostring()
{
return ("---------------"+"\n"+
"姓名:" +this.xingming+"\n"+
"工龄:" +this.gongling+"\n"+
"旷工:" +this.kuanggong+"\n"+
"请假:" + this.qingjia+"\n"+
"销售额: " + this.xiaoshoue+"\n"+
"月薪:"+ Yuexin()+"\n"+
"--------------"+"\n");
}


public float Yunxin()
{
return (float)(1000+gongling*100+xiaoshoue*0.05-kuanggong*50-qingjia*30);
}

}

public class Zhiyuan3 extends Person
{
public Zhiyuan3 (String xingming,int gongling,int kuanggong,int qingjia,float xiaoshoue)
{
super(xingming,gongling,kuanggong,qingjia,xiaoshoue);
}
public String tostring()
{

return ("---------------"+"\n"+
"姓名:" +this.xingming+"\n"+
"工龄:" +this.gongling+"\n"+
"旷工:" +this.kuanggong+"\n"+
"请假:" + this.qingjia+"\n"+
"销售额: " + this.xiaoshoue+"\n"+
"月薪:"+ Yuexin()+"\n"+
"--------------"+"\n");
}


public float Yuexin()
{
return (float)(700+gongling*100+xiaoshoue*0.05-kuanggong*50-qingjia*30);
}
}

public class T
{
public static void main(String[] args)
{
Zhiyuan3 z = new Zhiyuan3 ("小俐",2,3,3,3958.4f);
Jingli j = new Jingli("小苗",4,5,6,98763.4f);


Person p1 = (Person) z;
Person p2 = (Person) j;


System.out.println(p1.toString());
System.out.println(p2.toString());


}
}

最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-04-29 15:10

你太大意了,既然定义的是public String tostring()那么为什么又要调用P1.toString();


toString()默认是打印对象的字符串,如果想重载这个方法那么就把tostring给成toString,注意大小写。


-----


修改方法,把你的tostring()方法改为toString()


写该前输出如下:


Zhiyuan3@61de33
Jingli@14318bb


修改后输出如下:


---------------
姓名:小俐
工龄:2
旷工:3
请假:3
销售额: 3958.4
月薪:857.92
--------------


---------------
姓名:小苗
工龄:4
旷工:5
请假:6
销售额: 98763.4
月薪:5608.17
--------------




全部回答
  • 1楼网友:西风乍起
  • 2021-04-29 20:06
楼主就是大意了。 在你的main方法中你调用的是.toSting() toString()是系统自带的,将一个对象转换成string类型。 而在你的代码中有一个叫tostring()的方法。这个时候你要运行的是你自己的tostring()而不是系统的toString()。 只需改一下main方法中System.out.println(p1.tostring()); System.out.println(p2.tostring());即可得到一下结果。 --------------- 姓名:小俐 工龄:2 旷工:3 请假:3 销售额: 3958.4 月薪:857.92 -------------- --------------- 姓名:小苗 工龄:4 旷工:5 请假:6 销售额: 98763.4 月薪:5608.17 --------------
  • 2楼网友:傲气稳了全场
  • 2021-04-29 19:14
父类中的计算工资方法也不是空的啊,我怎么看也没觉的用到了方法重写!
  • 3楼网友:底特律间谍
  • 2021-04-29 17:48
public static void main(String[] args) { Person z = new Zhiyuan3 ("小俐",2,3,3,3958.4f); Person j = new Jingli("小苗",4,5,6,98763.4f);

System.out.println(z.toString()); System.out.println(j.toString());

}

这样就行了!

  • 4楼网友:鸽屿
  • 2021-04-29 16:26

如下是运行结果截图

  • 5楼网友:蓝房子
  • 2021-04-29 16:21

把main方法里的

Person p1 = (Person) z; Person p2 = (Person) j;

System.out.println(p1.toString()); System.out.println(p2.toString());

修改成

System.out.println(z.toString());

System.out.println(j.toString());

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯