我有一段程序代码,作用就是引用传递。但出现了问题,请帮忙指教。、操作系统win7,Eclipse3.2,jdk1.6,代码如下:
class Person{
private String name;
private int age;
private Book book;
public Person(String name,int age){
this.setAge(age);
this.setName(name);
}
public void setName(String n){
name=n;
}
public  String getName(){
return name;
}
public void setAge(int a){
age=a;
}
public int getAge(){
return age;
}
public void setBook(Book b){
book=b;
}
public Book getBook(){
return book;
}

}
class Book{
private String title;
private int price;
private Person person;
public Book(String title,int price){
this.setPrice(price);
this.setTitle(title);
}
public void setTitle(String t){
title=t;

}
public String getTitle(){
return title;
}
public void setPrice(int p){
price=p;
}
public double getPrice(){
return price;
}
public void setPerson(Person p){
person=p;

}
public Person getPerson(){
return person;
}

}
public class jcydy { /**
 * @param args
 */
public static void main(String[] args) {
// TODO 自动生成方法存根
Person per=new Person("hq",31);
Book bk=new Book("java",79);
per.setBook(bk);
//per.setBook(bk);
System.out.println("from person to book:"+per.getName()+"age is:"+per.getAge()+"book is :"+per.getBook().getTitle()+"book price is"+per.getBook().getPrice()); }}
===================================================
控制台提示:
构造方法
Exception in thread "main" java.lang.NoSuchMethodError: Person.setBook(LBook;)V
at jcydy.main(jcydy.java:68)

解决方案 »

  1.   

    运行是正确的、
    from person to book:hq
    age is:31 
    book is :java 
    book price is79.0
      

  2.   

    即使不在一个文件你的方法也是public的,应该访问的到得!
      

  3.   

    这段程序我在命令提示符cmd下运行是没有问题的,但是为什么在Eclipse中就会有问题呢?是因为我的操作系统是win7吗?
      

  4.   

    同样的一段代码,在eclipse中就会提示错误,而在cmd的命令行中却可以正常运行,这是为什么啊?
      

  5.   

     关于你的问题:这个错误NoSuchMethodException这个错误,在你运行时候抛出,就是找不到Main方法.错误的原因可能是你的文件的名字和含有mian的类放的位置,就是类名和文件名不一样.