Setando vetor, pq nao funciona assim?

1 resposta
laserista
public class Quadro {
	/*
	*  Quadro:
	*  +------+----------+----------+------------+-----+------+
	*  | flag | endereco | controle | informacao | fcs | flag |
	*  +------+----------+----------+------------+-----+------+
	*  &lt- 8 -&gt &lt-  8   -&gt &lt-  8   -&gt &lt-variavel-&gt &lt-16-&gt&lt- 8 -&gt
	*/
	private boolean[] flag; //8 bits -&gt 01111110
	private boolean[] endereco;//8 bits -&gt 11111111 para broadcast
	private boolean[] controle;//8-16 bits
	private boolean[] informacao;//variavel
	private boolean[] fcs;// 16-32 bits

	public Quadro() {
		this.flag = new boolean[8];
		this.endereco = new boolean[8];
		this.controle = new boolean[8];
		this.fcs = new boolean[16];
               this.flag = {false, true, true, true, true, true, true, false};
       }
.
.
.

Por que não posso setar o vetor this.flag na maneira que esta no construtor ?

Como eu posso resolver isso deixando a declaração da variável fora do construtor ?

Devo estar viajando em alguma coisa, alguém em abra os olhos ou me explique o pq.


Outra dúvida para aproveitar o tópico:

Posso criar uma função que tenha parametros que não precisem ser passados necessariamente quando a chamamos? Como no php em que por exemplo

function teste(a, b=2)

se chamarmos a funcao teste(3) em php ela seta automaticamente o b como 2.

tem como fazer algo do genero em java ?

Valeu desde já a todos.

1 Resposta

Sami_Koivu

Olá,

Tente o seguinte:

this.flag = new boolean[] {false, true, true, true, true, true, true, false};

Não existe um mecanismo em Java para definir um valor padrão para um parâmetro, acho. Pessoalmente uso overloading para ter mais ou menos o mesmo efeito:

public void teste(a) {
    teste(a, 2);
}

public void teste(a, b) {
    ...
}

[]s,
Sami

Criado 23 de junho de 2007
Ultima resposta 23 de jun. de 2007
Respostas 1
Participantes 2