[英]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.