今プログラミングの解読の課題をやっているんですが、

double[] six = new double[]{0.0, 1.0, 2.0, 3.0};
if (five(1.23,six)) System.out.println("(5): " + true);
else System.out.println("(5): " + false);
System.out.println("(6): " + six[six.length-1]);

というプログラム(全体の一部です)で、
出力した結果が
(5):true
(6):6.0
になるようなのですが、
・if (five(1.23,six))の括弧の中身が
 どういった条件を表しているか?
・sixのサイズは4なので、six.length-1==3
なので、six[six.length-1]=six[3]=3.0
となるかと思ったのですが、なぜ6.0になるんでしょう?

ご教授くださいませ。