class produzVersos

class produzVersos

by José Eduardo Santos -
Number of replies: 7

Eu não entendi como fazer para chamar essa classe...Eu criei a classe public static....coloquei uns comandos e beleza....~Quando eu testo no prompt os comandos que eu coloquei na classe public static são executados, porém os comandos que eu coloquei na classe produzVersos não são...???Como eu passo pra essa outra classe executar os comandos que estão nela???

Eduardo

In reply to José Eduardo Santos

Re: class produzVersos

by Vinícius Daros -
Olá, José

Não havia necessidade de criar mais de uma classe. A recomendação era criar uma classe GeradorDadaista.java com alguns métodos obrigatórios e outros, se você julgasse necessário.
(Trabalhar com métodos auxiliares é mais simples do que com classes auxiliares - será que não era isso que você realmente queria?)

Bom, se você preferir usar uma segunda classe, deve fazer o seguinte:
- Compila-la para que o .class seja gerado;
- Na classe principal, você deve instanciar um objeto do tipo da classe secundária, como
ProduzVersos versos = new ProduzVersos;
(lembrando que nome de classes devem começar com maiúscula)
- Chamar os métodos desejados através do objeto versos.

- Uma alternativa a instanciar um objeto, é fazer com que os métodos da classe ProduzVersos sejam estáticos e fazer a chamada diretamente pela classe.

Abraço,

Vinícius
In reply to Vinícius Daros

Re: class produzVersos

by José Eduardo Santos -

Desculpe...eu digitei errado...o que eu queria dizer era como chamar o método produzVersos...do jeito que eu to tentando fazer as informações (subs, verbos, artig.) estão no outro método - o public static void....agora eu quero utilizar as informações e pelo que eu entendi do enunciado devo utilizar o outro método - produzVersos, certo?? não sei direito...

Eduardo

In reply to José Eduardo Santos

Re: class produzVersos

by Marcelo Queiroz -
Eduardo,

o método produzVersos é obrigatório... você pode executá-lo a partir do método main assim:

produzVersos(númeroDeVersos,rima);

Sobre acessar as informações que você provavelmente preencheu no método main (como vetor de substantivos e etc), a solução mais fácil é guardar estas coisas não como variáveis locais da main, mas em atributos da classe (atributos precedidos da palavra static, no início da class GeradorDadaista {...}, e fora dos métodos). Estes atributos funcionam como "variáveis" que todos os métodos da classe conseguem enxergar. Assim o método produzVersos também vai enxergar tudo o que ele precisa.


In reply to Marcelo Queiroz

Re: class produzVersos

by Danila Ribeiro -

Meu programa estava rodando bem antes de eu usar o método produzVersos, mas agora (como ele é obrigaório), só imprime na tela a primeira linha do primeiro verso. Pela resposta do prof. Marcelo neste tópico e no tópico

http://paca.ime.usp.br/mod/forum/discuss.php?d=7143

tenho quase certeza de que o problema está nos laços, mas ainda não consegui resolver. Alguma dica mais do que pode estar acontecendo? Obrigada.

P.S.: Que alegria pelo adiamento da entrega. Do contrário, entregaria um programa que produz apenas um verso!...

In reply to Danila Ribeiro

Uma dica valiosa!

by Marcelo Queiroz -
A dica a seguir vale para todo mundo:

Se seu programa não está dando erro de compilação nem de execução, então o melhor caminho para localizar o erro (de lógica neste caso) é tentar executar o programa passo-a-passo, usando a ferramenta de depuração (debug) do DrJava.

Marque a caixinha Debug Mode no menu Debugger (Ctrl-D também funciona). Depois marque alguma linha do programa antes de trecho que você acha que está gerando o problema (pode ser a primeira linha da main, ou do produzVersos), colocando o cursor sobre ela e acionando o comando Toggle Breakpoint (ou Ctrl-B). Depois rode o programa: ele vai parar na linha selecionada. Você pode andar linha-por-linha usando o botão Step Into (ou F12), e ele vai mostrar cada linha da execução. Você também pode digitar o nome de variáveis no painel de interações e observar o valor atual das variáveis à medida que o programa anda.

Há outros recursos no debugger, mas para começar estes são suficientes. Essa é a melhor maneira de comparar aquilo que a gente pensa que o programa está fazendo, com aquilo que ele está fazendo na realidade!

Boa sorte!

Marcelo


In reply to Vinícius Daros

Re: class produzVersos

by Paulo Mei -
Uma pergunta ao professor.
No enunciado do EP está escrito que o método produzVersos é obrigatório, mas a "assinatura" deve ser igual?

static void produzVersos(int númeroDeVersos, boolean rima)

Porque no meu EP, eu não usei o qualificador static. E meu método não produz versos exatamente, ele verifica a variável boolean comRima e direciona para o método que cria versos com rima ou sem rima.