回 帖 发 新 帖 刷新版面

主题:这个小程序找不出错误,请高手帮忙

请问这个程序:
class Person
{
 private String name;
 private int age;
    
 Person(String n,int a)
 {
  this.setName(n);
  this.setAge=(a);
 }
 public void setName(String n)
 {
  name = n;
 }
 public void setAge(int a)
 {
  if(a>=0&&a<150)
  {
    age=a;
  }
        else
  {
   age=-1;
  }
 }
 public String getName()
 {
  return name;
 }
 public int getAge()
 {
  return age;
 }
 public void say()
 {
  System.out.println("姓名: "+name+",年龄:"+(age>=0?age:"非法年龄"));
 }
}
public class Test1
{
 public static void main(String arg[])
 {
  Person p = new Person("王明",-20);
  
  p.say();
  System.out.println(p.getAge());
 }
}
 
 
 
错误提示:
Test1.java:9: 找不到符号
符号: 变量 setAge
位置: 类 Person
                this.setAge=(a);
                ^
1 错误
 
我怎么没看出来错误在哪里啊。难道这里不能用this

回复列表 (共4个回复)

沙发

this.setAge=(a);

   方法能带 = 号的吗?
      又不是赋值.
  应该是this.setAge(a);
  去掉等于号应该就行了.

板凳

的确应该是this.setAge(a);而不能有那等号。
以下是略微改造:

import java.io.*;
class Person
{
 private String name;
 private int age;
    
 Person(String n,int a)
 {
  this.setName(n);
  this.setAge(a);
 }
 public void setName(String n)
 {
  name = n;
 }
 public void setAge(int a)
 {
  if(a>=0&&a<150)
  {
    age=a;
  }
        else
  {
   age=-1;
  }
 }
 public String getName()
 {
  return name;
 }
 public int getAge()
 {
  return age;
 }
 public void say()
 {
  System.out.println("姓名: "+name+",年齢:"+(age>=0?age:"非法年齢"));
 }
}

public class Test1
{
 public static void main(String arg[]) throws IOException
 {
    String str_age,str_retry;
    int age;
    int retry;

    do{

    BufferedReader keyin = new BufferedReader(
                new InputStreamReader(System.in));

        System.out.print("年齢入力(Please set Age): ");
        str_age=keyin.readLine();
        age= Integer.parseInt(str_age);

          Person p = new Person("王明",age);
  
          p.say();
          System.out.println(p.getAge());
        do{
        System.out.print("もう一度?1…Yes/0…No:");
        str_retry =keyin.readLine();
        retry = Integer.parseInt(str_retry);
        }while (retry !=1 && retry !=0);
    }while(retry == 1);
 }
}


[img]http://b15.photo.store.qq.com/http_imgload.cgi?/rurl4_b=44050a9e1ff511521f82b13fc8005fe3d37b964585e53782fbce8a6f505e775ab40667c4f1b96900c2d7c48c1cdd8938b52f1c164a3e84992e1a04b7adbaa5a862a72b3e79e42c39a1188925e4f773b8976ed972[/img]

图片来自本人空间:http://user.qzone.qq.com/1005030989/photo/27894c3d-f4b0-4bf4-88a9-fb5aff499453/M0Rx2XinNkCItgSYvtsMkqpIGQAJbA8AAA!!

由于本人用的是日文系统 有些只好用日语表示。

3 楼

确实,我也太粗心了。就这个等号搞的我查了半天。谢谢二位

4 楼

呵呵~来晚,初学者,请多指教!

我来回复

您尚未登录,请登录后再回复。点此登录或注册