21xrx.com
2024-11-08 22:08:46 Friday
登录
文章检索 我的文章 写文章
我最近在写Java程序时
2023-06-11 02:37:45 深夜i     --     --
Java set方法 问题解决

我最近在写Java程序时,遇到了一个非常奇怪的问题,就是我的set方法设置的值没有生效。经过一番探索,我终于找到了问题所在,并解决了这个问题。

这是我的代码:


public class Person {

  private String name;

  private int age;

  public Person(String name, int age)

    this.name = name;

    this.age = age;

  

  public void setName(String name)

    name = name;

  

  public void setAge(int age)

    age = age;

  

  public String getName()

    return name;

  

  public int getAge()

    return age;

  

}

我在创建一个Person对象后,使用set方法为name和age属性设置了新的值:


Person person = new Person("Tom", 20);

person.setName("Jerry");

person.setAge(18);

System.out.println(person.getName()); // 输出应该是"Jerry"

System.out.println(person.getAge()); // 输出应该是18

但是,我发现输出的结果却不是我期望的结果。输出结果是:


Tom

20

经过仔细地检查代码,我发现set方法中的参数名和属性名是一样的。这个问题是因为在set方法中,我设置的是参数名,而不是属性名。因此,在方法中对参数进行了更改。但是,属性并没有被更改。

解决这个问题只需要将set方法中的参数名和属性名区分开,可以在参数名前面添加“this.”:


public void setName(String name)

  this.name = name;

public void setAge(int age)

  this.age = age;

这样就可以正确地设置属性值,输出的结果符合预期。

那么,我们就来说一下这个问题吧!

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复