Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luthien

alterar um valor de uma variável de instancia dentro do main

Recommended Posts

nao consigo pensar em uma maneira de fazer isso, já tentei de várias formas, fiz a classe empregado e o main:

package br.ufop.ex1;

public class Empregado {
	private String nome, sobrenome, cargo;
	private double salario;
	private int coddep,mesAtual,mesAdmissao,mesAniversario;
	
	public Empregado(String nome, String sobrenome, String cargo, double salario, int coddep, int mesAtual, int mesAdmissao, int mesAniversario){
		setNome(nome);
		setSobrenome(sobrenome);
		setCargo(cargo);
		setSalario(salario);
		setCoddep(coddep);
		setMesAtual(mesAtual);
		setMesAdmissao(mesAdmissao);
		setMesAniversario(mesAniversario);
	}
	
	public Empregado(){

	}
	
	public double calculaSalario(int mes){
			if(this.mesAniversario == this.mesAtual)
				salario += 500;
			if(this.mesAdmissao == this.mesAtual)
				salario += 250;
			if(this.mesAtual == 3)
				salario *= 2.5;			
		return this.salario;
	}
	
	public String toString(){
		return "Nome: "+this.nome+"\tSobrenome: "+this.sobrenome+"\nCargo: "+this.cargo+"\nSalario: "+this.salario+"\nCódigo do departamento: "
				+this.coddep+"\nMês de Aniversário: "+this.mesAniversario+"\nMês de admissão: "+this.mesAdmissao;
	}
	
	public void setNome(String nome){
		this.nome = nome;
	}
	
	public String getNome(){
		return nome;
	}
	
	public void setSobrenome(String sobrenome){
		this.sobrenome = sobrenome;
	}
	
	public String getSobrenome(){
		return sobrenome;
	}
	
	public void setCargo(String cargo){
		this.cargo = cargo;
	}
	
	public String getCargo(){
		return cargo;
	}
	
	public void setSalario(double salario){
		this.salario = salario;
	}
	
	public double getSalario(){
		return salario;
	}	

	public void setCoddep(int coddep) {
		this.coddep = coddep;
	}
	
	public int getCoddep() {
		return coddep;
	}
	
	public void setMesAtual(int mesAtual){
		this.mesAtual = mesAtual;
	}
	
	public int getMesAtual(){
		return mesAtual;
	}
	
	public void setMesAdmissao(int mesAdmissao){
		this.mesAdmissao = mesAdmissao;
	}
	
	public int getMesAdmissao(){
		return mesAdmissao;
	}
	
	public void setMesAniversario(int mesAniversario){
		this.mesAniversario = mesAniversario;
	}
	
	public int getMesAniversario(){
		return mesAniversario;
	}

}
package br.ufop.ex1;

import java.util.Scanner;

public class MainEmpregado extends Data{
	static Scanner in;
	public static void main(String args[]){
		in = new Scanner(System.in);
		Empregado empregado[];
			
		System.out.println("Informe a quantidade de empregados que deseja cadastrar");
		int qtd = in.nextInt();
		
		empregado = new Empregado[qtd];
		
		for(int i = 0; i < qtd; i++){
			in.nextLine();
			empregado[i] = new Empregado();	
			System.out.println("Informe o nome do empregado");
			empregado[i].setNome(in.nextLine());
				
			System.out.println("Informe o sobrenome do empregado");
			empregado[i].setSobrenome(in.nextLine());
			
			System.out.println("Informe o mês de aniversário do empregado");
			empregado[i].setMesAniversario(in.nextInt());
			in.nextLine();
			
			System.out.println("Informe o mês de admissão do empregado");
			empregado[i].setMesAdmissao(in.nextInt());
			in.nextLine();
			
			System.out.println("Informe o cargo do empregado");
			empregado[i].setCargo(in.nextLine());
				
			System.out.println("Informe o salario mensal do empregado");
			empregado[i].setSalario(in.nextDouble());	

		}
		
		System.out.println("CONSULTA SALÁRIO");
		double salario[];
		salario = new double[qtd];
		
		for(int i = 0; i < qtd; i++){
			System.out.println("Digite 0 se deseja prosseguir e -1 para sair");
			int resp = in.nextInt();
			if(resp == 0){
				System.out.println("Informe o mês que deseja verificar o salário do funcionário "+ (i + 1));
				empregado[i].setMesAtual(in.nextInt());
				salario[i] = empregado[i].calculaSalario(empregado[i].getMesAtual());
			}
			else
				break;
		}			
		
		for(int i = 0; i < qtd; i++){
			System.out.println(empregado[i].toString());
		}
	}
}	

tá uma bagunça esse final, tenho q verificar qual vai ser o salário do empregado em determinado mes e calcular o salario a partir disso, mas como posso modificar esse valor do salário? Me ajudem pff, n consigo pensar mais D:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vc usa o método setSalario que vc criou p/ class Empregado.

 

empregado.setSalario(novo_salario)

Compartilhar este post


Link para o post
Compartilhar em outros sites

aah consegui, meu if tava errado:

System.out.println("CONSULTA SALÁRIO");
		double salario[];
		salario = new double[qtd];
		
		for(int i = 0; i < qtd; i++){
			System.out.println("Digite 0 se deseja prosseguir e -1 para sair");
			int resp = in.nextInt();
			if(resp == 0){
				System.out.println("Informe o mês que deseja verificar o salário do funcionário "+ (i + 1));
				empregado[i].setMesAtual(in.nextInt());
				salario[i] = empregado[i].calculaSalario(empregado[i].getMesAtual());
			}					
		}
		for(int i = 0; i < qtd; i++){
			System.out.println(empregado[i].toString());
			System.out.println("\n");
		}

obrigada :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.