我是编程新手,我想问一下为什么在我的代码中我不需要在构造函数和方法中使用返回函数?

另外,为什么在使用yearPasses函数后,年龄增加了3个而不是1个?

为冗长的代码道歉

public class Person
{
    private int age;

    public Person(int initialAge)
    {
        // Add some more code to run some checks on initialAge
        if (initialAge<0)
        {
            System.out.println("Age is not valid, setting age to 0.");
            initialAge = 0;
            age = initialAge;
        }
        else
        {
            age = initialAge;
        }
    }

    public void amIOld()
    {
        if (age<13)
        {
            System.out.println("You are young.");
        }
        else if (age>=13 && age<18)
        {
            System.out.println("You are a teenager.");
        }
        else
        {
            System.out.println("You are old.");
        }
    }

    public void yearPasses()
    {
        age = age + 1;
    }

    public static void main(String[] args)
    {
    Scanner sc = new Scanner(System.in);
    int T = sc.nextInt();
    for (int i = 0; i < T; i++)
    {
        int age = sc.nextInt();
        Person p = new Person(age);
        p.amIOld();
        for (int j = 0; j < 3; j++)
        {
            p.yearPasses();
        }
        p.amIOld();
        System.out.println();
    }
    sc.close();
}


}

最佳答案

构造函数中不需要return,因为构造函数的工作是创建对象。 new运算符会为您返回该对象,因此它不必位于构造函数中。

您的其他方法以返回类型void声明,这意味着它们不返回任何内容,因此您也不需要其中的return语句。

您正在执行3次的循环中调用yearPasses

10-08 04:48