Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么调用getter方法不能直接打印到屏幕上?_Java_Methods_Getter - Fatal编程技术网

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

Java 为什么调用getter方法不能直接打印到屏幕上?,java,methods,getter,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; } i

我正在学习一门非常基础的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。计算眼疲劳
,然后将变量打印到屏幕上

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

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

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

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

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

双引号在Java中创建
String
对象

这意味着本部分:

System.out.println("person1.calculateYearsToRetirement");
打印字符串“person1.calculateyearstorerement”,该字符串由引号显式构造

你的意思可能是:

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

你知道什么是
字符串吗?如果你合并这两行,你会得到:
System.out.println(“退休前的年数:+person1.calculateyearstorerement()),年龄和姓名相同。