[RESOLVIDO] Dúvida sobre uso de construtor em um programinha que estou fazendo

Boa noite a todos,

Estou fazendo um trabalhinho de um curso de java básico.
No momento estou implementando a classe FuncaoPolinomial que deve ter dois construtores:
Nesta classe há três atributos final: a,b e c que devem ser inicializados nos construtores.

  1. Recebe dois parâmetros (a e b), gerando uma função de primeiro grau (ax +b).
  2. Recebe três parâmetros (a,b e c ), gerando uma função de segundo grau (ax² + bx +c).

1ª Dúvida: No construtor 1) eu tenho de fazer this.c = 0 certo? Pois tenho de inicializar o c, e no caso de primeiro grau vale 0.

[b]2ª Dúvida: Essa classe tem de ter um método int getGrau(), que recebe um objeto da classe e retorna se é de grau 1 ou 2.
Como implemento este método? Seria algo do tipo “Se foi utilizado o construtor 1) então retorne 1. Se foi utilizado o construtor 2, retorne 2”.
Não sei como fazer isso em Java.

[/b]

Obrigado!

Sim. Na verdade, o Java inicializa as variáveis inteiras como 0, mas é sempre bom colocar o this.c = 0.

[quote=guilhermemarques]2ª Dúvida: Essa classe tem de ter um método int getGrau(), que recebe um objeto da classe e retorna se é de grau 1 ou 2.
Como implemento este método? Seria algo do tipo “Se foi utilizado o construtor 1) então retorne 1. Se foi utilizado o construtor 2, retorne 2”.
Não sei como fazer isso em Java.[/quote]

Você não precisa “receber” o objeto da classe. Simplesmente ter uma variável inteira “grau”, que indica de que grau é. Se for instanciada no construtor 1, você inicializa a variável como this.grau = 1. Se for no segundo, this.grau = 2. É uma opção.
Ou, você pode receber o objeto e ter um método getC() na classe, que retorna o valor de c. Se c for igual a 0, retorna que é do primeiro grau. Se for diferente de 0, retorna grau 2. Porém, é meio tosca essa última solução pelo fato de que pode ser uma equação do segundo grau e tem o c igual a 0, certo?
Então eu ficaria com a primeira solução.

Muito obrigado, solução perfeita mesmo.

Uma dica:

primeiro grau: bx + a
segundo grau: cx² + bx + a

ou genericamente, de (n-1)º grau:

// calculo de polinomial de uma variável
//  (ax² + bx +c) = y[0] + y[1]*x + y[2]*x² 

double resultado = 0;
for (int i = 0; i < n; i++)
{
  resultado += coeficiente[i] * Math.pow(x, i);
}

De fato, eu pensei na forma genérica de se voltar o valor da função, porém do jeito que está especificado nas equações não dá para fazer isso.
Hmmm, então potência é Math.pow , estava procurando ela hoje a tarde.

Valeu!