java调试报错

wq00168 2009-08-14 10:47:31
public class ParamTest {

public static void main(String[] args) {

System.out.println("Testing tripleValue");
double percent = 10;
System.out.println("Before: percent="+percent);
tripleValue(percent);
System.out.println("After: percent="+percent);
System.out.println("\nTesting tripleSalary:");
Employee harry = new Employee("Harry",50000);
System.out.println("Before: salary="+harry.getSalary());
tripleSalary(harry);
System.out.println("After: salary="+harry.getSalary());
System.out.println("\nTesting swap:");
Employee a = new Employee("Alice",70000);
Employee b = new Employee("Bob",60000);
System.out.println("Before: a = "+a.getName()+" "+"b = "+b.getName());
swap(a,b);
System.out.println("After: a = "+a.getName()+" "+"b = "+b.getName());


}
public static void tripleValue(double x)
{
x=3*x;
System.out.println("End fo method: x=" +x);
}
public static void tripleSalary(Employee x)
{
x.raiseSalary(200);
System.out.println("End of method: salary ="+x.getSalary());

}
public static void swap(Employee x,Employee y)
{
Employee temp = x;
x = y;
y = temp;
System.out.println("End of method: x="+x.getName()+" y="+y.getName());
}
}

class Employee {
public Employee (String n, double s)
{
name = n;
salary = s;

}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;

}
public void raiseSalary (double byPercent)
{
double raise = salary*byPercent/100;
salary +=raise;
}
private String name;
private double salary;

}


报错:efore: salary=50000.0
Exception in thread "main" java.lang.NoSuchMethodError: Employee.raiseSalary(D)V
at ParamTest.tripleSalary(ParamTest.java:32)
at ParamTest.main(ParamTest.java:14)
请问这个是什么问题?
...全文
132 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovecj6185 2009-08-14
  • 打赏
  • 举报
回复
确实运行楼主的代码没有报错
结果和楼上是一样的

是否没有得出楼主想要得结果呢
YY_MM_DD 2009-08-14
  • 打赏
  • 举报
回复
No error!啊 ...我晕...

Testing tripleValue
Before: percent=10.0
End fo method: x=30.0
After: percent=10.0

Testing tripleSalary:
Before: salary=50000.0
End of method: salary =150000.0
After: salary=150000.0

Testing swap:
Before: a = Alice b = Bob
End of method: x=Bob y=Alice
After: a = Alice b = Bob


bigbug9002 2009-08-14
  • 打赏
  • 举报
回复
不对,看错了。
1,2的是对的。
bigbug9002 2009-08-14
  • 打赏
  • 举报
回复
静态方法中不能调用非静态的方法。
beijixing022 2009-08-14
  • 打赏
  • 举报
回复
将200改为200d试试~~~
YY_MM_DD 2009-08-14
  • 打赏
  • 举报
回复
x.raiseSalary(200);
把他改个double型
x.raiseSalary(Double.valueOf(200));

caironghuicxz 2009-08-14
  • 打赏
  • 举报
回复
格式调调,这样会让人很累的
say___baby 2009-08-14
  • 打赏
  • 举报
回复
没有错误啊,楼主的JDK是好多版本的哦
wq00168 2009-08-14
  • 打赏
  • 举报
回复
我再看看
lovecj6185 2009-08-14
  • 打赏
  • 举报
回复
既然大家运行都没有错
说明程序本身没有问题

那是不是楼主同一个包中有类发生冲突阿
方法的命名什莫德
wq00168 2009-08-14
  • 打赏
  • 举报
回复
不会吧,我这个怎么报错了
弘石 2009-08-14
  • 打赏
  • 举报
回复
eclipse里运行过,没有错误
wq00168 2009-08-14
  • 打赏
  • 举报
回复
在classic Employee 报错,出现已定义类型 Employee,这个是什么意思?
wq00168 2009-08-14
  • 打赏
  • 举报
回复
不会啊,我用eclipse运行就是有错的,还是报:Testing tripleValue
Before: percent=10.0
End fo method: x=30.0
After: percent=10.0

Testing tripleSalary:
Before: salary=50000.0
Exception in thread "main" java.lang.NoSuchMethodError: Employee.raiseSalary(D)V
at ParamTest.tripleSalary(ParamTest.java:32)
at ParamTest.main(ParamTest.java:14)
为什么会是这样啊?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧