Qual a diferença entre objeto e array?

30/03/2021

5

Então, a pergunta é essa, qual a diferença entre um objeto e um array no javascript?

Muito obrigado, rapaziada.
Responder

Post mais votado

30/03/2021

não sei dizer exatamente sobre o javascript, mas posso dizer conceitualmente.

um array é um tipo de variável que comporta mais de uma informação, de forma ordenada.

mat := '000001'
nome := 'Jose' // variável
endereco := 'Rua X' // variável comum
bairro := 'Bairro Z' // vatriável comum
salario := 1500 // vatriável comum
cada dado está numa variável diferente

array:
dados := {'000001', 'Jose', 'Rua X', 'Bairro Z', 1500} // variável array, comporta vários dados (vou supor que o array é baseado em 0)
desta forma, se quiser o nome do fulano contido no array: dados[1] // retorna 'Jose'
se quiser saber o salário: dados[4] // retorna 1500
você tem todos os dados na mesma variável, mas precisa buscar o elemento correto para obter o dado desejado.

objeto:
é um tipo complexo, onde você pode ter propriedades (conteúdos de campos), métodos (funções; normalmente trabalham no contexto do próprio objeto) e eventos (funções disparadas automaticamente por determinadas ações).
exemplo de preenchimento das propriedades:
funcionario.matricula := 'Jose'
funcionario.nome := 'Jose'
funcionario.endereco := 'Rua X'
funcionario.bairro := 'Bairro Z'
funcionario.salario := 1500
assim, para saber a matrícula contido no objeto funcionario, basta fazer
funcionario.matricula // retorna '000001'
como as propriedades são nomeadas, você não precisa se preocupar com a 'ordem' do conteúdo, como é preciso fazer no array; basta buscar pelo nome da propriedade.

mas o objeto é muito mais que isso. você pode ter métodos.
imagine que você queira simular o aumento de salário. você pode ter um metódo na classe, onde você indica o percentual e tem como retorno o valor acrescido desse percentual.
por exemplo:
novosalario := funcionario.aumentosalarial(8) // 8% de aumento, cujo retorno será 1620 (obviamente você terá de implementar/programar o método aumentosalarial).
ou ainda:
funcionario.demitir // vai executar todos os procedimentos necessários para demissão do funcionário indicado nas propriedades da classe.

você pode ainda ter eventos. por exemplo: sempre que houver alteração da matrícula, o objeto busca os dados no banco de dados.
então ao fazer algo como:
funcionario.matricula := '000003' // atribuir. isso vai depender da linguagem
ao perceber a alteração da matrícula o objeto faz a busca no banco de dados e preenche todas as proprieadades da classe.

dessa forma a classe se torna algo auto suficiente, sem necessidade de funções externas.
tudo que ela precisa está encapsulado nela.

mais ainda há as vantagens de polimorfisco, que é a herança de um objeto base para formar um novo, que pode ser ainda mais complexo.

assim:
você tem a classe pessoa, que possui as propriedades pertinentes a uma pessoa:
nome, endereço, telefone, cpf, etc.
para criar o objeto funcionario você não precisa partir do zero. você pode herdar de pessoa e implementar somente o necessário.
propriedades:
matricula
salario
cargo
departamento
metodos:
aumentosalarial
demitir
eventos:
buscardados (disparado automaticamente ao trocar a matricula)

e o que mais for necessário.

bom, basicamente, bem basicamente, é isso.
Responder

Mais Posts

Acho que eu entendi Emerson.

Muito obrigado :D
Responder
onde está escrito polimorfisco (nem sei como saiu isso), leia polimorfismo.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar