Lógica de Programação JAVA, OO

4 respostas
carloshsamaral

Pessoal, meu professor pediu para que fizéssemos um programa que inserisse o código de um funcionário ( se 0 == erro ), nome, salário bruto e exibisse, o código, nome e o valor liquido que ele receberia, consegui fazer tudo direito só que ele falou que a forma que o código está empregado para uma programação OO está errado gostaria da ajuda de vcs para eu saber como é o correto

import java.util.Scanner;
public class SalarioLiquido {
    public static void main (String [] args){
        Scanner teclado=new Scanner (System.in);
        int cod;
        String nome;
        double inss,sal,liq;
        
        System.out.println("Digite o código do funcionário: ");
        cod = teclado.nextInt();
        
        
       if (cod == 0){
           System.out.println("Codigo escrito errado");
       }
       else {
      
        System.out.println("Digite o nome do funcionário: ");
        nome = teclado.next();
        System.out.println("Digite o salário bruto do funcionário: ");
        sal = teclado.nextDouble();
        inss = (sal*11)/100;
        System.out.printf("O valor descontado de INSS é de ");
        System.out.println(inss);
        liq = sal-inss;
        System.out.println("O funcionário");
        System.out.println(nome);
        System.out.println(" de matricula");
        System.out.println(cod);
        System.out.println(" ira ter o desconte de");
        System.out.println(inss);
        System.out.println(" e ira receber o valor liquido esse mês de ");
        System.out.println(liq);
        
        
        
    }
    }
}

Quem poder me ajudar o mais rápido possível eu agradeço, pq amanha eu tenho uma entrevista de estágio e preciso aprender isso até umas 2 da manhã, obrigado a todos !

4 Respostas

x111

O que fez foi um programa sequencia de leitura e escrita de dados.
Na verdade não é nem programação procedural, já que você não tem nenhum método só o main.

você tem que criar um classe Funcionario e definir nela os atributos como código, nome e sálario bruto.
o sálario liquido é calculado dentro dessa classe, bem como o inss.

Depois disso você vai popular essa classe lendo os dados do teclado.

carloshsamaral

Entendi, seria como Estrutura de dados em C++ ? Então to ferrado que amanhã tenho uma entrevista de estágio e to querendo muito entrar e eu só tive uma aula de JAVA esse ano, amanhã anoite é a segunda :S

Bertan

Ola,

Não sei se é isto, mas segue um exemplo utilizando uma outra classe para Funcionario:

Classe Principal:

package javaapplication1;

import java.util.Scanner;

/**
 *
 * @author Bertan
 */
public class JavaApplication1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        
        Funcionario funcionario = new Funcionario();

        System.out.println("Digite o código do funcionário: ");
        funcionario.setCodigo(teclado.nextInt());


        if (funcionario.getCodigo() == 0) {
            System.out.println("Codigo escrito errado");
        } else {

            System.out.println("Digite o nome do funcionário: ");
            funcionario.setNome(teclado.next());
            System.out.println("Digite o salário bruto do funcionário: ");
            funcionario.setSal(teclado.nextDouble());
            
            System.out.printf("O valor descontado de INSS é de ");
            System.out.println(funcionario.getInss());
            System.out.println("O funcionário");
            System.out.println(funcionario.getNome());
            System.out.println(" de matricula");
            System.out.println(funcionario.getCodigo());
            System.out.println(" ira ter o desconte de");
            System.out.println(funcionario.getInss());
            System.out.println(" e ira receber o valor liquido esse mês de ");
            System.out.println(funcionario.getLiq());
        }
    }
}

classe funcionario:

package javaapplication1;

/**
 *
 * @author Bertan
 */
public class Funcionario {
    private int codigo;
    private String nome;
    private double inss;
    private double sal;
    private double liq;
    
    public Funcionario(){
        
    }

    /**
     * @return the codigo
     */
    public int getCodigo() {
        return codigo;
    }

    /**
     * @param codigo the codigo to set
     */
    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the inss
     */
    public double getInss() {
        return (getSal()*11)/100;
    }

    /**
     * @return the sal
     */
    public double getSal() {
        return sal;
    }

    /**
     * @param sal the sal to set
     */
    public void setSal(double sal) {
        this.sal = sal;
    }

    /**
     * @return the liq
     */
    public double getLiq() {
        return (getSal()-getInss());
    }
}

Boa sorte na entrevista :smiley:

Desculpa se tiver algum erro, estou atrasado para a aula :confused:

[]'s
Bertan

carloshsamaral

Bertan e X@ndi Obrigado aos dois, entendi sim só que para eu aprender isso hj para tentar usar amanha vai ser osso, mesmo assim vou estudar obrigado e Bertan boa aula !

Criado 8 de março de 2012
Ultima resposta 8 de mar. de 2012
Respostas 4
Participantes 3