Java在数组中调用没有点符号的方法

标签 java

有人可以解释一下 getName()getGrade() 如何在没有被告知的情况下最终引用与 createProgressReport() 相同的项目吗?

很明显,通过 item.createProgressReport() 对数组中的项目调用了 createProgressReport。但似乎没有告诉 getName()getGrade() 在同一个项目上调用,因为没有像 item.getName 这样的点符号().

getName()getGrade() 方法似乎如何自动“知道”对哪个学生调用该方法。

for (Student item : myStudents) {
    System.out.println(item.createProgressReport());

public String createProgressReport() {
    String myString = getName() + " " + getGrade();

最佳答案

createProgressReport 在对象实例上调用。除非您以其他方式编码,否则在该方法中调用的任何方法都将在同一对象上调用。

换句话说,您的方法相当于:

String myString = this.getName() + " " + this.getGrade();

关于Java在数组中调用没有点符号的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45515520/

相关文章:

java - JasperReports API 中的 FileResolver 被什么取代了?

java - 如何让单例重新初始化变量?

java - 使用 DAO/servlet 中的表单/参数过滤数据

java - Lombok - maven 编译失败 "error: cannot access MappedSuperClass"

java - Mockito Scala 重载方法值 thenReturn 和替代方案

java - 追加两个单链表

java - 当函数返回而不关闭准备好的语句/结果集时,这会很糟糕吗?

java - 为什么 ConsoleAppender 抛出 "no output stream or file set for the appender named [null]"?

java - 缩小类型转换 : Why is assignment of int to a byte in a declaration allowed?

java - 嵌套的 XML 转换器