Olá no meu código abaixo aparece o seguinte erro nas linhas 40 e 41:
- cannot find symbol
relativo aos pontos presentes nas duas linhas antes do MOSTRA();
Eu achei que não poderia colocar duas classes com main no mesmo arquivo e portanto estava tentando fazer uma classe separada com um VOID MOSTRA{} em um arquivo com apenas duas classes, class Empresa e class TestaEmpresa. Depois achei que essa poderia ser a razão .
Aí decidi por "unificar" o código.
JAVA é a primeira linguagem que eu tento aprender, fiz um curso de lógica de linguagem com javascript pra auxiliar um pouco. Mas muitas vezes me sinto perdido na sintaxe do código, é normal ter tantas dúvidas assim no início?
Segue meu código:
class Empresa {
String nome;
Funcionario[] empregados;
int cnpj;
void adiciona (Funcionario f) {
for (int i=0; i<this.empregados.length; i++) {
if (empregados[i] == null) {
this.empregados[i]=f;
}else{
continue;
}
}
}
void mostraEmpregados() {
for (int i = 0; i< this.empregados.length; i++) {
System.out.println("Funcionário na posição" + i);
System.out.println("R$" + this.empregados[i].salario);
}
}
}
class TestaEmpresa{
public static void main (String[]args){
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[2];
Funcionario f1 = new Funcionario();
f1.salario = 1000;
empresa.adiciona(f1);
Funcionario f2 = new Funcionario();
f2.salario = 3000;
empresa.adiciona(f2);
empresa.empregados[0].mostra();
empresa.empregados[1].mostra();
empresa.mostraEmpregados();
}
}
class Data {
int dia;
int mes;
int ano;
void preencheData (int dia, int mes, int ano){
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
String getFormatada() {
return this.dia + "/" + this.mes + "/" + this.ano;}
}
class Funcionaria {
String nome;
String departamento;
double salario;
Data dataDeEntrada;
String rg;
void recebeAumento(double aumento){
this.salario += aumento;
}
double calculaGanhoAnual() {
return this.salario*=12;
}
void mostra() {
System.out.println("Nome:" + this.nome);
System.out.println("Departamento:"+this.departamento);
System.out.println("Salario:"+this.salario);
System.out.println("dataDeEntrada:"+this.dataDeEntrada);
System.out.println("RG"+this.rg);
System.out.println("Ganho Anual"+this.calculaGanhoAnual());
System.out.println("Dia: " + this.dataDeEntrada.dia);
System.out.println("Mês: " + this.dataDeEntrada.mes);
System.out.println("Ano: " + this.dataDeEntrada.ano);
System.out.println("Data de entrada: " + this.dataDeEntrada.getFormatada());
}
}
class TestaFuncionaria{
public static void main(String[]args){
Funcionaria f1= new Funcionaria();
f1.nome = "Marcia";
f1.departamento = "administrativo";
f1.salario = 1500;
f1.rg = "12335";
f1.recebeAumento (250);
//adicionando a data como tipo
f1.dataDeEntrada = new Data();
f1.dataDeEntrada.preencheData(13, 5,2014);
f1.mostra();
System.out.println("Salário atual:" + f1.salario);
System.out.println("Ganho Anual:" + f1.calculaGanhoAnual());
Funcionaria f2=f1;
if (f1 == f2) {
System.out.println("iguais");
} else {
System.out.println("diferentes");
}
}
}