2
respostas

Como faria na prática

Eu entendi o exemplo, mas gostaria de saber nesse caso como faria pra verificar se existe um cadastro x

class Funcionario {
String nomeFun;
double salFun;  

public void mostra(){
    System.out.println(this.nomeFun);
    System.out.println(this.salFun);
    System.out.println("\n");
    }
}
class Empresa {
int cnpjEmp;
String nomeEmp;
int livre=0;
Funcionario[] func;

void adiciona(Funcionario f) {
     this.func[this.livre] = f;
     this.livre++;  }


void mostraTodosFuncionarios(){
    for(int i=0;i<this.livre;i++){
    System.out.println("Funcionário na posição: " + i);
    this.func[i].mostra();
    }

boolean contem(Funcionario f){
    for (int i = 0; i < this.livre; i++) {
        if (f == this.func[i]) {
            return true;
        }
        else{
            return false;
        }}}


    }}

class TesteArray{
    public static void main(String[] args){

Empresa empresa1 = new Empresa();
//empresa1.cnpjEmp = 451212145;
//empresa1.nomeEmp = "FlexTronics";
empresa1.func = new Funcionario[10];

Funcionario f1 = new Funcionario();
f1.nomeFun = "Natan Boschini";
f1.salFun = 3200.0;
empresa1.adiciona(f1);

Funcionario f2 = new Funcionario();
f2.nomeFun = "Marcelo Gadioli";
f2.salFun = 4200.0;
empresa1.adiciona(f2);


empresa1.mostraTodosFuncionarios();


} }
2 respostas

Olá Antonio, tudo bom?

Então o método contém já verifica se existe um determinado funcionário! Agora se a ideia é criar um sistema de login e senha esse curso pode te ajudar!

https://www.alura.com.br/curso-online-servlet-3-e-fundamentos-web

Olá Antonio, tudo bem?

A comparação que o == faz com objetos, é comprar o endereço de memória

if (f == this.func[i]) {

ele faz a comparação usando o endereço de memória, ou seja, ele verifica se o endereço de memória de um é igual ao do outro. Se você quer ver se já existe uma cadastro X, você precisa definir como é seria um cadastro igual (E.g se o nome for igual, então já existe essa conta), sobrescrevendo o metodo equals na sua classe Funcionario, e então usar esse metodo para comparação. Acredito que esse recurso será apresentado mais adiante!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software