Bom dia a todos, sou iniciante e estou com uma dúvida simples.
O seguinte código:
public class Soma {
public int Soma(int a, int b) {
return a + b;
}
public double Soma(int a, int b) {
return a + b;
}
}
possui erros, um eu sei que é o fato de os métodos int Soma e double Soma, terem a mesma assinatura e os mesmos tipos de dados passados por parâmetro.
Gostaria de saber se existem mais alguns erros ou se é só esse.
Refiz o código e gostaria de saber se ficou bom, ou se existe algum método melhor para fazê-lo.
Segue:
[code]public class Exercicio3 {
private double soma;
public class Soma {
public Soma(int a, int b) {
soma = a + b;
}
public Soma(double a, double b) {
soma = a + b;
}
}
Bom, na minha opinião está bom só vejo dois probleminhas… você está colocando uma classe dentro da outra… isso poderia ser feito com a penas umas classe como no primeiro exemplo, ou então se fosse com duas classes a segunda seria a classe de execução. -> public static void main(String [] args) o outro problema é que você está dizendo que o método retorna um valor entãovocê precisa colocar um return.
Assim:
public class Exercicio3 {
private double soma;
public Soma(int a, int b) {
return a + b;
}
public Soma(double a, double b) {
return a + b;
}
}
Arizoide
Só para fins de curiosidade, o erro nesse código:
public class Soma {
public int Soma(int a, int b) {
return a + b;
}
public double Soma(int a, int b) {
return a + b;
}
}
…acontece porque o segundo método deve retornar um double, mas a soma de dois inteiros será inteiro.
Para isso não ocorrer, é só fazer um cast ou converter para double.
[quote=esdmorais]Arizoide
Só para fins de curiosidade, o erro nesse código:
public class Soma {
public int Soma(int a, int b) {
return a + b;
}
public double Soma(int a, int b) {
return a + b;
}
}
…acontece porque o segundo método deve retornar um double, mas a soma de dois inteiros será inteiro.
Para isso não ocorrer, é só fazer um cast ou converter para double.[/quote]
Não.
Métodos sobrecarregados (que possuem mesmo nome e tipo de retorno) devem possuir, ao menos, 1 parâmetro diferente, independente do que retornem.
Sendo assim, os métodos acima estão errados por isto.
Se um deles receber um double, float ou qualquer coisa que modifique o número ou tipo de parâmetros, aí sim eles podem ser utilizados.
Outra coisa,
felipevs, há outro problema que persiste. Estes não são métodos construtores, precisam de um tipo de retorno, que não existe ali, consegue perceber?
Era sim felipevs.
Ele verá getters e setters em breve, se o professor for bom.
Eu mesmo, só fui ver isto depois de 1 ano e meio de java, quando iniciei os estudos em JSTL e Struts 2…