Estou estudando Java e me deparei com um programinha bem simples. Entretanto, aparece um erro que não consigo entender por qual razão ele está dando no ponto do código. O erro é “misssing return statement” e ocorre no método “setNome(String n)”, mais especificamente na linha 46 do código. Poderiam me dizer como estar resolvendo essa situação? Desde já fico agradecida!!
Segue abaixo o código:
[code]import java.util.*;
class Empregado
{
public Empregado (int num, String n, double s, GregorianCalendar d)
{
numero = num;
nome = n;
salario = s;
dataContratacao = d;
}
public void print()
{
System.out.println (numero + " " + nome + " " + salario + " " + anoContratacao());
}
public void aumentaSalario (double percentualDeAumento)
{
salario = salario * (1 + (percentualDeAumento/100));
}
//método que altera a data de contratação usando a classe GregorianCalendar.
public void alteraDataContratacao (int ano, int mes, int dia)
{
dataContratacao.set (Calendar.YEAR, ano);
dataContratacao.set (Calendar.MONTH, mes);
dataContratacao.set (Calendar.DATE, dia);
}
//método que retorna o ano de contratação usando a classe GregorianCalendar.
public int anoContratacao()
{
return dataContratacao.get(Calendar.YEAR);
//return dataContratacao.getYear();
}
public String getNome()
{
return nome;
}
//este método está dando erro: missing return statement.
public String setNome(String n)
{
nome = n;
}
private int numero;
private String nome;
private double salario;
private Calendar dataContratacao;//variável que possui a data de contratação.
Em alguns casos é interessante retornar a referência ao próprio objeto, ou seja, this (embora os setters padrão Javabeans sempre sejam void). Isso é feito quando se quer usar “fluent programming”.
Oi KassiPretti, eh o seguinte em java vc pode retornar ow nao oq significa isso, quando vc declara um metodo do tipo void ele naum tem nenhum tipo de retorno mas quando vc declara metodos com alguma tipagem ele tem que retorna o tipo declarado
no seu caso vc declarou um metodo do tipo String portanto o metodo devera retorna pra vc uma String
public String getNome(){
return nome;
}
E geralmente em metodos de retorno nao se passa parametro somente quando vc esta setando
public void setNome(String nome){
this.nome = nome;
}
bom espero ter ajudado
pooootz q cara ignorante, o zé ruela no caso dela ela resolveria assim só isso que eu quis dizer tá o mal educado bitolado e a sua vó zé ruela!
cada mané que aparece por aqui e ainda e moderador um tonto desse!
Oi Alessandro_Alves acho que eu não me expressei direito, o primeiro caso que mostrei foi o erro cometido pela Lys, o certo vem logo abaixo.
No caso do metodo set retornar ou não alguma coisa cabe o que o programador deseja, mas geralmente o set não apresenta retorno. Já nos métodos get eles sempre apresentaram retorno, pois é para isso que eles são implementados. Até temos o operador this para especificar o retorno da propria variavel da classe.
O que aconteceu no seu codigo foi o seguinte, vc tentou passar pra um metodo void um tipo de retorno no vc o declarou como String e depois setNome, isso pra java nao tem problema oq acontece e por convensao eh que metodos que devem ter retorno na declaracao vc colo o get e no metodos do tipo void vc coloca set era isso que eu queria te explicar.
Bom quanto aos metodos sets caso vc esteja dentro da normas eles nunca retornaram nd somente modificam
public Y getY(){ return this.y; }
public Z getZ(){ return this.z; }
public X setY(Y y){ this.y = y; return this; }
public X setY(Z z){ this.z = z; return this; }
public static void main(String [] xxx){
X x = new X();
x.setY("...").setZ("...");
}
}[/code]
Ainda mais quando setY/setZ for algo mais ‘fluente’.
Em alguns casos é interessante retornar a referência ao próprio objeto, ou seja, this (embora os setters padrão Javabeans sempre sejam void). Isso é feito quando se quer usar “fluent programming”.
[/quote]
pooootz q cara ignorante, o zé ruela no caso dela ela resolveria assim só isso que eu quis dizer tá o mal educado bitolado e a sua vó zé ruela!
cada mané que aparece por aqui e ainda e moderador um tonto desse![/quote]
Calma… O thingol só quis tentar abrir sua mente p/ não ficar seguindo receitas como se as mesmas fossem verdades absolutas e aplicáveis a todas as situações… Não precisa estressar…
Concordo com o thingol, pq vc deu a entender que tem que decorar regrinha como se tivesse na escola:
X faz isso
Y faz aquilo…
Explicando de maneira informal temos que fluent programming seria uma programação mais facil de visualizar (intuitiva) seguindo certos padrões estabelecidos como uma boa prática de programação.