大家看看为什么我的方法调用错误
class Persons {int id;
int age;
public Persons (int i, int a) {
id = i;
age = a;
}
public int getId () {
return id;
}
public int getAge () {
return age;
}
public int reworkId (int i) {
id = i;
return id;
}
public int reworkAge (int i) {
age = i;
return age;
}
public void display() {
System.out.println ("ID:" + id + "Age:" + age);
}
}
public class Fanhui {
public static void main(String args[]) {
Persons a = new Persons(1,13);
a.dispaly ();
System.out.println("ID:" + a.getId);
System.out.println("Age:" + a.getAge);
System.out.println("ID:" + a.rework(2));
System.out.println("Age:" + a.rework(15));
}
}
谁能帮我检查一下方法调用出了什么问题。
[ 本帖最后由 vecomwa 于 2009-9-16 17:33 编辑 ]
----------------解决方案--------------------------------------------------------
先分析你的测试类
a.dispaly ();// 属于书写错误 你定义的方法是--->display 注意看你的是dispaly
System.out.println("ID:" + a.getId); //你需要返回的是a对象里的getId这个构造方法 那么基本的格式就错了应该是a.getId()其中括号是方法的一个标志
----------------解决方案--------------------------------------------------------
你还没有理解好面向对象的一些基本概念:
public (修饰符) class 类名{
....//属性
....//方法
}
比如说你没有赋值--->此时java默认的构造方法会自动初始化
构造方法: 1-->无参的语法
public 类名{
.....//可以不写
}
2----->有参的语法
public 类名 (参数){
}
比如说你的这个就是有参的
public Persons (int i, int a) {
id = i;
age = a;
}
----------------解决方案--------------------------------------------------------
对,你少写一个无参构造
----------------解决方案--------------------------------------------------------
System.out.println("ID:" + a.rework(2));
System.out.println("Age:" + a.rework(15));
这两句有问题,你并没有定义rework(int)方法,你定义的是reworkID和reworkAge两个方法
----------------解决方案--------------------------------------------------------
System.out.println("ID:" + a.getId);
System.out.println("Age:" + a.getAge);
另外getID和getAge的调用也不合法,两个方法没有参数不代表后面的括号也可以省略
----------------解决方案--------------------------------------------------------
回复 3楼 gameohyes
3楼,他有没有写无参构造函数与他的出错有关系吗?好像没有吧?楼主的错误都是很低级的,建议你以后多多练习!请问楼主是用什么软件来编写的,如果是在MyEclipse写,这些错误就会马上显示出来,比较方便! ----------------解决方案--------------------------------------------------------
public class Fanhui{
public static void main(String args[]) {
Persons a = new Persons(1,13);
a.display(); //方法名写错
System.out.println("ID:" + a.getId());
System.out.println("Age:" + a.getAge());
System.out.println("ID:" + a.reworkId(2));//根本没这个方法,何来的调用
System.out.println("Age:" + a.reworkAge(15)); //同上
}
}
这是修改后的代码,看下你自己的原代码。
[ 本帖最后由 hz50235247 于 2009-9-18 17:55 编辑 ]
----------------解决方案--------------------------------------------------------
class Persons {
int id;
int age;
public Persons (int i, int a) {
id = i;
age = a;
}
public int getId (){
return id;
}
public int getAge (){
return age;
}
public int reworkId (int i){
id = i;
return id;
}
public int reworkAge (int i){
age = i;
return age;
}
void setId(int id){
this.id=id;
}
void setAge(int age){
this.age=age;
}
void display(int id,int age){//display 中的 id和age应用set方法输入
System.out.println("ID:" + id + "Age:" + age);
}
}
public class Fanhui{
public static void main(String args[]){
Persons b= new Persons(1,13);
b.display(2001,20);
System.out.println("ID:" + b.getId() );//get 后面应加括号
System.out.println("Age:" + b.getAge() );
System.out.println("ID:" + b.reworkId(2));
System.out.println("Age:" + b.reworkAge(15));
}
}
----------------解决方案--------------------------------------------------------
新手学习中
----------------解决方案--------------------------------------------------------