为什么调用getter方法不能直接打印到屏幕?

时间:2015-07-25 23:27:10

标签: java methods getter

我正在做一个非常基础的java课程,它引入了getter方法。但是,有些事情我不明白。

class Person {

    String name;
    int age;

void speak() {
    System.out.println("My name is : " + name);
}

int calculateYearsToRetirement() { 
    int yearsLeft = 65 - age;

    return yearsLeft;
}

int getAge() {
    return age;
}

String getName() {
    return name;
}

public static void main(String[] args) {

    Person person1 = new Person();

    person1.name = "Joe";
    person1.age = 25;

    person1.speak();

    int years = person1.calculateYearsToRetirement();
    System.out.println("Years till retirement : " + years);


    //System.out.println(person1.getAge());
    //System.out.println(person1.getName());

    int age = person1.getAge();
    String name = person1.getName();

    System.out.println("Age is : " + age);
    System.out.println("Name is : " + name);

    }
}

请查看我的代码评论。 我试过了,打印到屏幕没问题。 但是当我尝试时:

System.out.println("person1.calculateYearsToRetirement");

它没有用。

但是,有人告诉我,我已将int变量years分配给person1.calculateYearsToRetirement,然后将变量打印到屏幕。

你们能解释一下为什么会这样吗? 提前谢谢!

2 个答案:

答案 0 :(得分:1)

如果您尝试打印方法调用返回的值,则必须删除语音标记并附加括号。

System.out.println(person1.calculateYearsToRetirement());

使用语音标记将打印String而不是方法调用的结果。我建议您阅读一些基本的Java教程以了解该语言。

答案 1 :(得分:1)

你没有调用任何函数(或getter,这是一个函数)。

双引号用Java创建String个对象。

这意味着这部分:

System.out.println("person1.calculateYearsToRetirement");

打印字符串"person1.calculateYearsToRetirement",它由引号显式构造。

你的意思可能是:

System.out.println(person1.calculateYearsToRetirement());