2017-08-04 1 views
0

getName()getGrade()は、最終的にcreateProgressReport()と同じ項目を参照することなく終了する方法を説明できますか?Javaでドット表記を使用しないメソッドを呼び出す

item.createProgressReport()の配列内の項目にcreateProgressReportが呼び出されていることは明らかです。しかし、item.getName()のようなドット表記がないので、getName()getGrade()は同じ項目で呼び出されるように言われていないようです。

どのメソッドがメソッドを呼び出す生徒に自動的に「知っている」ように見えますか?

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

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

答えて

8

createProgressReportがオブジェクトのインスタンスに対して呼び出されます。別の方法でコーディングしていない限り、そのメソッド内で呼び出されるメソッドはすべて同じオブジェクトに対して呼び出されます。

別の言い方をすると、あなたの方法は同等です:私に

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

私は答えを入力していたのと同じように、私にそれを打つ。 – HumbleWebDev

+1

スピードに関するコンテストではありません。彼が好きな答えを決めるのはオペレーション次第です。 –

+0

非常に真です。まあまあうまく終わるよ! – HumbleWebDev

2

あなたが、クラスのコンテキスト内で作業している表示されます。

オブジェクト指向プログラミングでは、クラス内の別のメソッドからメソッドを呼び出すと、通常、同じインスタンスが参照されます。

このように実行されない言語は、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 
関連する問題