Me ajudem em um código por favor, sou novo em java
4 respostas
maaelphd
Boa noite galera!
MEU PRIMEIRO TÓPICO
bem estou começando java agora, estou lendo uma apostila do Caelum, estou em um dos exercícios da apostila e estou tendo dificuldade em formar uma soma entre variáveis(Acho que é isso), já olhei vários tópicos aqui do site, e não encontrei uma solução!
Bem o que estou tendo problemas é o seguinte: "crie um método bonifica
que aumenta o salario do funcionário de acordo com o parâmetro passado como argumento."
eu criei e ficou assim
Aparentemente você esta tentando compilar esse arquivo com outro nome que não o nome da classe publica ou seja você deve compilar esse arquivo da seguinte maneira.
javac testaFuncionario.java -> ou seja o nome do arquivo precisa ser esse, o nome da classe publica.
No codigo acima você usa a instancia f1 para configurar o que deve ser uma variavel porém não há uma variavel bonifica na classe, e sim um metodo então deveria chamar f1.bonifica(); e passando um argumento que aparentemente e um double pelo seu codigo.
classFuncionario{Stringnome;Stringdepartamento;doublesalario;Stringadmitido;Stringrg;doubleaumento;voidbonifica(doubleaumento){salario=salario+aumento;}}publicclassTestaFuncionario{publicstaticvoidmain(Stringargs[]){Funcionariof1=newFuncionario();f1.nome="Abimael";f1.departamento="Tecnico";f1.salario=1500;f1.admitido="14/01/2013";f1.rg="36.415.374-X";// f1.bonifica = 250; // Erro você esta usando uma instancia de Funcionario para configurar um variavel que não há na classe Funcionario.// f1.aumento = f1.salario + f1.bonifica;System.out.println("Nome Funcionario : "+f1.nome);System.out.println("Departamento : "+f1.departamento);System.out.println("Salario Atual : "+f1.salario);System.out.println("Data Adminissão : "+f1.admitido);System.out.println("RG : "+f1.rg);// System.out.println("Bonificação : " +f1.bonifica);System.out.println("Novo Salario : "+f1.aumento);}}
Repare no codigo acima eu coloquei comentarios // nas linhas onde estava o problema, agora esta compilando, tente analisar e ver o motivo que você estava errando qualquer duvida posta ai.
maaelphd
Deu certo amigo, eu vi o erro e corrigi aqui mesmo. E realmente eu estava executando a class Funcionario, não a class testaFuncionario, mas agora está tudo certo, valeu mesmo (:
reyson
Olá maaelphd!
Vou te dar uma dica! Aprimore seu código interagindo com o usuário e utilizando mais OO(Orientação ao Objeto).
Veja como ficaria seu código:
Essa é a classe Funcionario( onde há todo o tratamento dos dados fornecidos pelo usuário )
publicclassFuncionario{// o modificador de acesso (private) quer dizer que sua variável de instância não pode ser acessada diretamente fora da classe Funcionário// Ou seja, para obter o valor da variável é necessário invocar(chamar) o método desejado correspondente a variável de instância. privateStringnome;privateStringdepartamento;privateDoublesalarioAtual;// como essa variável não foi inicializada, seu valor default(padrão) é 0.0 privateStringdataAdmissao;privateStringrg;privateDoubleaumento;// como essa variável não foi inicializada, seu valor default(padrão) é 0.0 privateDoublenovoSalario;publicDoublebonifica(){novoSalario=getSalarioAtual()+getAumento();returnnovoSalario;}//Criando os getters e setterspublicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetDepartamento(){returndepartamento;}publicvoidsetDepartamento(Stringdepartamento){this.departamento=departamento;}publicDoublegetSalarioAtual(){returnsalarioAtual;}publicvoidsetSalarioAtual(DoublesalarioAtual){this.salarioAtual=salarioAtual;}publicStringgetDataAdmissao(){returndataAdmissao;}publicvoidsetDataAdmissao(StringdataAdmissao){this.dataAdmissao=dataAdmissao;}publicStringgetRg(){returnrg;}publicvoidsetRg(Stringrg){this.rg=rg;}publicDoublegetAumento(){returnaumento;}publicvoidsetAumento(Doubleaumento){this.aumento=aumento;}//Método para imprimir as informações geradas da pessoapublicvoidimprimirRelatorio(){System.out.println("___________________________________________");System.out.println("Funcionário: "+getNome());System.out.println("Departamento: "+getDepartamento());System.out.printf("Salario Atual: R$%.2f\n",getSalarioAtual());System.out.println("Data Admissão: "+getDataAdmissao());System.out.println("RG: "+getRg());System.out.printf("Bonificação: R$%.2f\n",getAumento());System.out.printf("Novo Salário: R$%.2f\n",bonifica());System.out.println("___________________________________________");}}
Essa é a classe FuncionarioTest(serve para solicitar os dados do usuário, transferir os argumentos ao métodos equivalentes e mostrar o resultado final)
importjava.util.Scanner;// ler dados pelo tecladopublicclassFuncionarioTest{publicstaticvoidmain(String[]args){Funcionariofunc=newFuncionario();Scannerinput=newScanner(System.in);System.out.println("Dados do(a) Funcionário(a)");System.out.println("Informe o Nome:");Stringnome=input.nextLine();System.out.println("Informe o Departamento:");Stringdepartamento=input.nextLine();System.out.println("Informe a Data de Admissão:");System.out.println("formato: dd/mm/aaaa:");StringdataAdmissao=input.nextLine();System.out.println("Informe o RG(Registro Geral):");Stringrg=input.nextLine();System.out.println("Informe o Salário Atual:");doublesalarioAtual=input.nextDouble();System.out.println("Informe o valor do aumento R$:");doubleaumento=input.nextDouble();// Invoca(chama) os métodos e passa os argumentos correspondentesfunc.setNome(nome);func.setDepartamento(departamento);func.setSalarioAtual(salarioAtual);func.setDataAdmissao(dataAdmissao);func.setRg(rg);func.setAumento(aumento);// Imprime o Relátório Gerado do(a) Funcionário(a)func.imprimirRelatorio();}}
Faça um bom proveito!
Boa sorte!
ViniGodoy
Por favor, ao criar tópicos, dê um título descritivo.
Dizer “Me ajudem por favor” não serve para nada, pois não descreve a dúvida.
Dizer que “eu sou novo em Java” também não dá nenhuma informação que você já não havia dado ao postar em “Java Básico” (além disso, essa informação descreve o autor, e não a dúvida em si).