Boa noite a todos.
Este é o primeiro post que faço nesse fórum.
Sou extremamente iniciante em Java, OO e em programação como um todo. Escolhi o Java para ingressar nesse mundo de desenvolvimento de software que sempre achei muito interressante. 
Para isso, estou usando o livro USE A CABEÇA! JAVA. Mas tenho algumas dificuldades conforme coloco abaixo.
Estou analisando o seguinte algoritmo, que está disponível na [color=darkred]páginas 66[/color] do citado livro e fiquei com as dúvidas que coloquei logo abaixo desse código:
public class Mix401 {
int counter = 0;
public static void main(String [] args) {
int count = 0;
Mix401 [] m4a = new Mix401[20];
int x = 0;
while (x < 20) {
m4a[x] = new Mix401();
m4a[x].counter = m4a[x].counter + 1;
count = count + 1;
count = count + m4a[x].maybeNew(x);
x = x + 1;
}
System.out.println(count + " " + m4a[1].counter);
}
public int maybeNew(int index) {
if (index < 5) {
Mix401 m4 = new Mix401();
m4.counter = m4.counter + 1;
return 1;
}
return 0;
}
}
Mesmo seguindo fielmente a ordem dos assuntos apresentados pelo livro em questão, não consigo sanar a dificuldade de entender esse código que coloquei acima, [color=red]parece que nele há recursos que ainda não foram apresentados pelo livro, náo sei…[/color]
Na linha 23, entendo que está sendo criada uma classe de nome maybeNew, até aí tudo bem, mas o que significa a variável int index que está entre parênteses nesta mesma linha? Vejo que ela é usada no comando IF da linha 25, mas as variáveis não devem ser criadas em uma linha a parte, dentro do corpo da classe? Ou isso não faz diferença?
Na linha 27, é criado o objeto m4, com base na classe Mix401, ok!
Na linha 29, o que consigo entender, é que a variável counter do objeto m4 é somada em 1 e o resultado dessa soma é atribuído a ela mesma, ou seja, à variável counter do objeto m4. Mas essa variável, antes da soma, tem qual valor? Zero?
Na linha 30, há um retorno de valor 1. O que significa isso exatamente? Esse retorno é armazenado em que local? Esse valor 1 é usado para alguma coisa durante a execução desse código?
Na linha 32, novamente há um retorno, segue as mesmas dúvidas que fiz para a linha 30.
Não sei se compliquei muito para colocar minhas dificuldades, mas é isso.
[color=red]O pessoal que já conhece o livro, pode me dizer se isso que estou perguntando será tratado posteriormente à página 66?[/color]. Já reli os capítulos iniciais para ver se não me atentei a alguma explicação, mas não ajudou muito. He, he…
Obrigado.