class Person {
int id;
String name;

public void setid(int id) {
this.id  = id;
}

public String getname() {
return name;
}

}class Student extends Person {
String school;

public void setSchool(String school){
this.school = school;
}
}public class TestEx {
public static void main(String[] ages) {

Student s = new Student();

s.setid(5);
// s.getname("john");
// s.setSchool("dx");
//
System.out.println(s.setid());
// System.out.println(s.getname());
// System.out.println(s.setSchool());


}
}
错误提示:
C:\TestJava\TestEx>javac TestEx.java
TestEx.java:32: 无法将 Person 中的 setid(int) 应用于 ()
                        System.out.println(s.setid());看了半天也没明白是什么问题,请大侠们看一下。

解决方案 »

  1.   

    s.setid()不是void的吗?
    你想让System.out.println输出什么?
      

  2.   

    public void setid(int id) {
            this.id  = id;
            }
    这个方法是用来设置id的,不是用来获取id的
      

  3.   

    s.setid()你有这个无参的方法么?
      

  4.   

    本意是s.setid(5)将5传递给setid(),然后打印
      

  5.   

    修改后的程序如下:
    class Person {
    int id;
    String name;
    /**
     * setXX()用来设置对象的属性值
     * getXX()用来获取对象的属性值
     * 
     */
    public int getId() {
    return id;
    } public void setId(int id) {
    this.id = id;
    } public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    }}class Student extends Person {
    String school; public void setSchool(String school) {
    this.school = school;
    } public String getSchool() {
    return school;
    }}public class TestEx {
    public static void main(String[] ages) { Student s = new Student(); s.setId(5);
    s.setName("john");
    s.setSchool("dx"); System.out.println(s.getId());
    System.out.println(s.getName());
    System.out.println(s.getSchool()); }
    }