0
I have 3 classes involved in this error: Testaempresa, Empresa,.
My idea is to create an array of employees within Company and print in Testaempresa. For this I made within Funcio a method called "show()". This should issue the output via a "System.out.prinln()" for each attribute that is in Funcio. But I got the following error when trying to compile the classes.
Error: The method println(Boolean) in the type Printstream is not applicable for the Arguments (void).
I will now put the classes for possible analysis:
Testaempresa:
package projetoMeuBanco;
public class TestaEmpresa {
public static void main(String[] args) {
//Crie um objeto de classe empresa.
Empresa empresa = new Empresa();
//Array de Funcionarios:
empresa.setFuncionarios(new Funcionario[5]);
//Crie alguns funcionarios e preencha seus atributos, em seguida add a classe empresa.
Funcionario func1 = new Funcionario();
Funcionario func2 = new Funcionario();
Funcionario func3 = new Funcionario();
func1.setNome("Aldo");
func2.setNome("Baldo");
func3.setNome("Caldo");
func1.dataDeNascimento.setDia("16");
func1.dataDeNascimento.setMes("02");
func1.dataDeNascimento.setAno("1997");
func2.dataDeNascimento.setDia("17");
func2.dataDeNascimento.setMes("03");
func2.dataDeNascimento.setAno("1998");
func3.dataDeNascimento.setDia("18");
func3.dataDeNascimento.setMes("04");
func3.dataDeNascimento.setAno("1999");
//Add os funcionarios a empresa.
empresa.adciona(func1);
empresa.adciona(func2);
empresa.adciona(func3);
//Usando o foreach percorra funcionarios da empresa.
for (Funcionario f: empresa.funcionarios)
{
System.out.println(f.mostra());
}
}
}
Enterprise:
package projetoMeuBanco;
public class Empresa{
private String nome, cnpj;
protected Funcionario[] funcionarios;
private int posicaoLivre;
public void adciona (Funcionario func) {
this.funcionarios[this.posicaoLivre]=func;
this.posicaoLivre++;
}
public Funcionario[] getFuncionarios() {
return funcionarios;
}
public void setFuncionarios(Funcionario[] funcionarios) {
this.funcionarios = funcionarios;
}
}
Functionary:
package projetoMeuBanco;
//Atributos
public class Funcionario {
private String nome;//get e set
private String departamento;//get e set
private double salario=1000;//get
private boolean ativo;//is e set
protected Data dataDeNascimento = new Data();
public void aumentarSalario(double aumento) {
this.salario=this.salario*aumento;
}
public void mostra() {
System.out.println("Nome: "+this.nome+".");
System.out.println("Salário: "+this.salario+".");
System.out.println("Data de nascimento: "+dataDeNascimento.data());
System.out.println("Está na empresa?");
if(ativo) {
System.out.print("Sim\n");
}else {
System.out.print("Não\n");
}
}
public boolean demite() {
ativo=false;
return ativo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getDepartamento() {
return departamento;
}
public void setDepartamento(String departamento) {
this.departamento = departamento;
}
public boolean isAtivo() {
return ativo;
}
public void setAtivo(boolean ativo) {
this.ativo = ativo;
}
public double getSalario() {
return salario;
}
}
These codes are in the same package and I wanted to call the employee vector that is located in the company class. So using the method shows that it appears in employees. But I believe you are having some problem in this call.
I didn’t use any Boolean method by the way and yet this error appeared talking about Boleano. I would like you to help me understand better why I had this problem. And what might be causing this error.
Watch your
if(ativo){...}
, in classFuncionario
. It is unclear if you are using the boolean method assetdemite()
or if it is the boolenado methodisAtivo()
. Looking at your code, I understood that you should/could useif(isAtivo()){...}
. If the asset is true, it prints yes, otherwise;– Van Ribeiro