繁体   English   中英

Java调用数组中没有点表示法的方法

[英]Java calling a method without dot notation in an array

有人可以解释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();

对我来说,您似乎在课堂上工作。

在面向对象的编程中,从类中的另一个方法调用一个方法通常将引用同一实例。

可能无法以这种方式执行的语言是JavaScript或php,您需要在其中引用$ this对象。

//php
$this->methodName();

//JavaScript
var self = this;
self.methodName();

//java
methodName(); //implied this when working within the context of the same class

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM