[RESOLVIDO] - Construindo um construtor que recebe como parâmetro dois valores, maior e menor
5 respostas
M
maxcanoas
Bom dia…
seguinte, eu tenho que criar uma classe que tem dois atributos inteiros positivos (limiteUm e limiteDois), esta classe deve ter um construtor que recebe dois inteiros positivos e armazena o menor em limiteUm e o maior em limiteDois, mas eu não estou conseguindo fazer, alguém pode dar uma mão?
seguinte, eu tenho que criar uma classe que tem dois atributos inteiros positivos (limiteUm e limiteDois), esta classe deve ter um construtor que recebe dois inteiros positivos e armazena o menor em limiteUm e o maior em limiteDois, mas eu não estou conseguindo fazer, alguém pode dar uma mão?
O que você já fez ?
Sabe o que é um construtor ?
É bem simples, crie duas variáveis como você precisa, crie um construtor que obrigue a passar os dois parâmetros necessários, pegue esses valores passados e atribua os mesmos as variáveis privadas criadas dentro da sua classe.
M
maxcanoas
Sim, sei o que é um construtor, e o que eu não estou conseguindo fazer é justamente guardar os valores dentro dos atributos.
Meu código está assim:
Cara, bom dia.
O que esta errado aí é a lógica de atribuição das variáveis.
Imagina que você passou limUm = 1 e limDois = 10, sua primeira condição será falsa com isso sua variável limiteUm não receberá nenhum valor, o mesmo acontece se a segunda condição for falsa, nenhum valor será atribuído a variável limiteDois.
DaniloAndrade
maxcanoas:
Sim, sei o que é um construtor, e o que eu não estou conseguindo fazer é justamente guardar os valores dentro dos atributos.
Meu código está assim:
outra coisa pelo que estou vendo vc pode passar os limites em qualquer ordem, não seria melhor vc colocar uma ordem especifica e caso a ordem não seja obedecida vc lança uma exception
publicclassGeraInteiros{privateintlimiteInicial;privateintlimiteFinal;publicGeraInteiros(intlimiteInicial,intlimiteFinal){if(limiteFinal<limiteInicial){thrownewIllegalArgumentException("limite final não poder ser menor que o limite inicial ");}if(limiteInicial<0||limiteFinal<0){thrownewIllegalArgumentException("limites não podem ser negativos ");}this.limiteInicial=limiteInicial;this.limiteFinal=limiteFinal;}}
M
maxcanoas
Ok, desse jeito funciona, mas por exemplo, quando se é com três números, eu faço assim:
Mas com dois números, eu imaginava fazer algo parecido, colocando uma variável auxiliar, se necessário. É isso que eu não to conseguindo. A forma de fazer com a exception é boa, mas como eu to começando agora em java, queria tentar de uma maneira mais "simples"