Cógido da página 66 do livro Use a Cabeça! Java - DÚVIDA! Peço ajuda para entender o código.  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
wss
Smalltalk

Membro desde: 09/06/2010 19:08:01
Mensagens: 3
Offline

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 páginas 66 do citado livro e fiquei com as dúvidas que coloquei logo abaixo desse código:



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, parece que nele há recursos que ainda não foram apresentados pelo livro, náo sei...

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.

O pessoal que já conhece o livro, pode me dizer se isso que estou perguntando será tratado posteriormente à página 66?. 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.
Diego Silveira
Debugger

Membro desde: 12/10/2007 17:15:25
Mensagens: 68
Offline


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?


Nesta linha esta sendo criado um método (ou operação) dentro da classe Mix401, e não uma classe. A variável int index é um parâmetro que este método recebe.


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?


Exatamente. Perceba que a variável é iniciada como 0 na linha 2. Na primeira execução do método maybeNew, seu valor é igual a 0. Logo nesta primeira execução ela fica igual a 1, pois counter = conter + 1. Na proxima execução, seu valor será 2, e assim sucessivamente. Lembre-se, primeiro o Java faz a operação (soma) e depois a atribuição (armazenamento).


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?


O retorno é o resultado da operação/método. Neste caso ele será usado na linha 16. Uma vez que o return é executado, o fluxo do método é interrompido e retorna para a parte do código que a invocou.

Qualquer dúvida é so falar!






Diego Silveira
Ciência da Computação - UFU
SCJP 6

[Email] [MSN]
wss
Smalltalk

Membro desde: 09/06/2010 19:08:01
Mensagens: 3
Offline

Bom dia!

Obrigado pela ajuda. Vendo agora com mais detalhes o que acontece em cada linha fica mais fácil entender.

Acho que preciso revisar alguns conceitos.

Obrigado Diego.

diego.hordi
Entusiasta Java

Membro desde: 24/03/2010 13:59:13
Mensagens: 21
Offline

Bom dia!

Não querendo ser chato ou pragmático demais, mas realmente é necessário antes de prática, teoria - pois do contrário, perde o direcionamento. Todavia, lhe recomendo que estude bastante orientação à objetos, de forma à saber o que cada conceito significa, e depois sim, se exercitar com o Java. Pois o Java - fantástico do jeito que é - vai lhe abrir muitas portas e se você não souber, por exemplo, o que é herança ou encapsulamento, vai ficar perdido, com toda a certeza.

Bons estudos!

[]'s
DanielGimenes
Thread.start()
[Avatar]

Membro desde: 28/01/2010 13:40:04
Mensagens: 48
Localização: São Paulo
Offline

wss,

Recomendo que vc estude OO antes de ler este ou outros livros de Java. Vc cometeu erros básicos na hora de escrever o post (como chamar o counter de variável, e achar que na linha 23 uma classe estava sendo criada), e acredito que ler um livro de OO vai facilitar muito a sua vida para depois entender Java, além de que Orientação a Objetos é um paradigma que te ajudará a pensar em arquitetura de sistemas, etc, e não é restrito à linguagem.

[[]]'s
[Email]
wss
Smalltalk

Membro desde: 09/06/2010 19:08:01
Mensagens: 3
Offline

Boa dia amigos.

Diego e Daniel, agradeço pela dica. Eu achava que o livro iria comentar OO de forma suficiente, mas a dica de vocês é ótima. Tá bem difícil mesmo entender esses código.

Alguém pode sugerir alguma bibliografia e Orientação a Objetos boa para leigo?

Obrigado a todos.
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team