Definir Array no método - EP2

Definir Array no método - EP2

por Paulo Mei -
Número de respostas: 4
Tem alguma forma de um array definido em um método ser usado em outro?

No EP2 o usuário digita quantos substantivos ele quer usar. Convertendo de String para Int eu consigo criar um array do tamanho digitado, mas isso é dentro de um método. Ai não consigo usar em outro método.

E se eu defino ele na classe, eu não consigo mudar o tamanho depois.

Tem alguma forma de um array definido em um método ser usado em outro? ou de mudar o tamanho dele depois de definido?
Em resposta à Paulo Mei

Re: Definir Array no método - EP2

por Paulo Mei -
Encontrei um jeito já, mas caso alguém caia no mesmo problema...

Eu defini o array na classe como null, ai disse o tamanho dele só no método, e ao que parece deu certo.

class GeradorDadaista
{
String[] artigo = null;
.... blá blá blá...

public static void main (String[] args)
{
...
blá blá blá blá
...
artigo = new String[numerosubstantivos];
...
}
}
Em resposta à Paulo Mei

Re: Definir Array no método - EP2

por Vinícius Daros -
Está perfeito, Mei!

Quando você declarou a variável artigo na classe, tornou-a visível a todos os métodos, podendo altera-la em qualquer um deles.

Lembrando: quando declaramos String [] artigo, estamos criando uma referência para um vetor de strings, isto é, o vetor ainda não existe. Só teremos um vetor quando o instanciarmos, ou seja, quando chamamos new String[tamanho].

Assim, o que o Mei fez foi:
1- Criou um referência para um vetor (cujo tamanho não é sabido no momento);
2- Apenas depois de saber qual tamanho o vetor deverá ter, criou um objeto do tipo vetor de strings (uma instãncia) e fez com que artigo passasse a "apontar" para essa instância.

Espero que tenha ficado claro.
Abraço,

Vinícius
Em resposta à Paulo Mei

Re: Definir Array no método - EP2

por José Eduardo Santos -

Eu to tentando fazer isso, mas aparece o seguinte erro:

1 error found:
File: C:\Documents and Settings\Eduardo\Meus documentos\Programação\GeradorDadaista.java  [line: 31]
Error: non-static variable guardaVerbos cannot be referenced from a static context

??

Eduardo

Em resposta à José Eduardo Santos

Re: Definir Array no método - EP2

por Daniel David Mlot Pinheiro -
Eduardo, esse erro acontece porque o método main é static, ou seja, pode ser usado sem criar nenhum objeto da classe. Por esse motivo, todos os métodos e atributos a serem empregados pelo main devem ser static também. Assim, basta incluir static nas suas declarações: static String[] guardaVerbos, static void produzVersos(...), etc.

Daniel David