如何在 Java 中更新/更改实例变量? 初级

问题描述

我是 Java 新手,我正在尝试创建一种方法来更新我的对象的实例变量年龄。我正在编译代码,但我看不到年龄值的变化。此代码是赋值的一部分,因此我无法更改构造函数。我写的更新年龄的方法(不起作用)如下所示。我的整个代码如下所示。我也很好奇是否有一种方法可以只更新/更改我的一个对象,但在此之前,我需要该方法对两者都适用。任何正确编写此方法的帮助将不胜感激!

public void setnewAge(int age) {
    dogAge += 1;
    this.dogAge = dogAge;
}

下面是我的全部代码包括我写的更新年龄的方法)。

public class Dog {
    //Instance Varibles
    private String dogName; 
    private int dogAge;
    private int dogWeight;

    //Two Contructors (One Completely Empty)
    public Dog() {
    }  
    
    public Dog(String name,int age,int weight){
        dogName = name;
        dogAge = age;
        dogWeight = weight;
    }   

    //Getters
    public String getName() { return dogName;}
    public int getAge() { return dogAge;}
    public int getWeight() { return dogWeight;}
    
    //Setters
    public void setName(String theName) { dogName = theName;}
    public void setAge(int theAge) {dogAge = theAge;}
    public void setWeight(int theWeight) {dogWeight = theWeight;}
        
    //to(String) method
    public String toString() {
        return  "The dogs's name is " + getName() + ",the dogs's age is " +
                getAge() + "," + "\n" + "the dogs's weight is " + getWeight() + ".";
    }
    
    public void setnewAge(int age) {
        dogAge += 1;
        this.dogAge = dogAge;
    }       

    //Main Method
    public static void main(String[] args) {
        Dog poodle = new Dog("Bob",5,26);
        System.out.println(poodle);
        Dog lab = new Dog();
        lab.setName("Steve");
        lab.setAge(8);
        lab.setWeight(43);
        System.out.println(lab);
    }
}

解决方法

正如汤姆所说,你需要在你的主函数中实际调用该函数,否则不会有任何变化,并且还要为你的 setnewAge 函数优化你的代码,试试这个:

    public void setnewAge() {
           this.dogAge = dogAge + 1;
    }

然后在主函数中调用 setnewAge() 并打印您的年龄以查看结果。

Dog poodle = new Dog("Bob",5,26);
poodle.setnewAge() ;