有一道题目是书本上的 题目本来是想要得到如下结果:
经理的工资为:3800
员工的工资为:1480
我的程序运行后不知道后面怎么多了两个数 一直不知道是怎么来的
我的程序运行的结果如下:
经理的工资为:3800
员工的工资为:14801600
960
请问这个1600 和 960是怎么来
要怎样改才能去掉这两个数而只要上面的
经理的工资为:3800
员工的工资为:1480
这个结果。
我写的代码:
class Yuangong{
String name;
int salary;
int age;
Yugong(String n,int i){
this.name=n;
this.age=i;
}
public int getSalary(){
this.salary=this.salary+this.age*20;
return salary;
}
}
class Boss extends Yuangong{
int salary=3000;
Boss(String n,int i){
super(n,i);
System.out.println("经理的工资为:"+(super.getSalary()+this.salary));
}
}
class Emp extends Yuangong{
int salary=1000;
Emp(String n,int i){
super(n,i);
System.out.println("员工的工资为:"+(super.getSalary()+this.salary)+"\n");
}
}
public class Testwu{
public static void main(String[] args){
Boss b=new Boss("张三",40);
Emp e=new Emp("李四",24);
System.out.println(b.getSalary());
System.out.println(e.getSalary());
}
}
经理的工资为:3800
员工的工资为:1480
我的程序运行后不知道后面怎么多了两个数 一直不知道是怎么来的
我的程序运行的结果如下:
经理的工资为:3800
员工的工资为:14801600
960
请问这个1600 和 960是怎么来
要怎样改才能去掉这两个数而只要上面的
经理的工资为:3800
员工的工资为:1480
这个结果。
我写的代码:
class Yuangong{
String name;
int salary;
int age;
Yugong(String n,int i){
this.name=n;
this.age=i;
}
public int getSalary(){
this.salary=this.salary+this.age*20;
return salary;
}
}
class Boss extends Yuangong{
int salary=3000;
Boss(String n,int i){
super(n,i);
System.out.println("经理的工资为:"+(super.getSalary()+this.salary));
}
}
class Emp extends Yuangong{
int salary=1000;
Emp(String n,int i){
super(n,i);
System.out.println("员工的工资为:"+(super.getSalary()+this.salary)+"\n");
}
}
public class Testwu{
public static void main(String[] args){
Boss b=new Boss("张三",40);
Emp e=new Emp("李四",24);
System.out.println(b.getSalary());
System.out.println(e.getSalary());
}
}
System.out.println(e.getSalary());
这两句去掉
class Yuangong {
String name;
int salary;
int age; Yuangong(String n, int i) {
this.name = n;
this.age = i; } public int getSalary() {
this.salary = this.salary + this.age * 20;
return salary;
}
}class BossA extends Yuangong {
int salary = 3000; public BossA(String n, int i) {
super(n, i);
System.out.println("经理的工资为:" + (super.getSalary() + this.salary));
}
}class Emp extends Yuangong {
int salary = 1000;
Emp(String n, int i) {
super(n, i);
System.out
.println("员工的工资为:" + (super.getSalary() + this.salary) + "\n");
}
}public class Testwu {
public static void main(String[] args) {
BossA b = new BossA("张三", 40);
Emp e = new Emp("李四", 24);
}
}
问题在那里列?
1.当我把代码拷进eclipse的时候已经报错了,不知道这位大哥你是怎么运行出结果的。这点我很佩服你。在报错的情况下都能运行成功。你看下你YuanGong这个类,看下他的构造函数,写对了吗?
2。你的BOSS类和Emp类的构造函数中已经有打印语句了。也就是说当你选择BOSS 和EMP对象的时候他们就已经打印出了他们的工资,也就是执行
BossA b = new BossA("张三", 40);
Emp e = new Emp("李四", 24);
的时候就已经打印出来了
而你下面的打印,则会去掉用YuanGong类的getSalary()方法 所以你后面的两个数就是下面的2个打印语句打出来的,其实你自己加个断点就可以看出来了。
System.out.println(b.getSalary());
System.out.println(e.getSalary());
去掉..
结果我也给出来了还是COPY过来的