Ir para conteúdo

Arquivado

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

marcioperdigao

Criando Objetos

Recommended Posts

Olá, eu sou meio leigo nessa parte de OO, mas tentarei explicar da melhor maneira que conheço.

 

Tenho uma função que é executada a cada 60/1000 segundos, e dentro da função ela estancia um novo objeto da classe atkTarget.

 

var atk=new atkTarget(this);

 

Ela sempre executa isso quando é chamada, ou seja, umas 60 vezes por segundo. Minha dúvida é, eu estou criando 60 objetos por segundo ou ela está usando o mesmo objeto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

está criando 60 objetos por segundo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, continua criando 60 objetos. Cada new é um novo objeto.

Pq vc faz isso ? realmente precisa ser uma instância ? não podia ser um objeto literal (singleton)?

Compartilhar este post


Link para o post
Compartilhar em outros sites

objeto literal tb é objeto, e tb é orientação a objetos.

 

new Obj();

 

e

 

var obj = {};

 

é objeto do mesmo jeito. A diferença está na memória que você vai alocar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por janir.matheus
      Bom dia,
       
      Preciso de ajuda ajuda para resolver o problema de SIGSEGV, basicamente tennho um zconection dentro de uma classe e recebo erro quando tento acessá-lo. Segue um trecho da classe:
      unit unt_classconexao; {$mode objfpc}{$H+} interface uses Classes, SysUtils, ZConnection, ZDataset; type { tConexao } tConexao = class private public vConector : TZConnection; function Listar_Usuarios:TZReadOnlyQuery; procedure Conectar_Banco; end; implementation { tConexao } function tConexao.Listar_Usuarios: TZReadOnlyQuery; var zrquery : TZReadOnlyQuery; begin Conectar_Banco; try zrquery := TZReadOnlyQuery.Create(nil); zrquery.Connection := vConector; zrquery.SQL.Clear; zrquery.SQL.Text := 'SELECT * from tbl_profissionais'; zrquery.Open; Listar_Usuarios := zrquery; finally end; end; procedure tConexao.Conectar_Banco; begin //vConector := TZConnection.Create(nil); vConector.HostName := 'localhost'; vConector.Port := 3306; vConector.Database := 'Caps'; vConector.Protocol := 'mysql-5'; vConector.User := 'root'; vConector.Password := ''; vConector.Connected := true; end; end. Após isso tento fazer uso dessa classe para popular um DBGrid:
      unit unt_frmprincipal; {$mode objfpc}{$H+} interface uses Classes, SysUtils, DB, Forms, Controls, Graphics, Dialogs, Menus, DBGrids, ZConnection, unt_classconexao; type { Tfrm_principal } Tfrm_principal = class(TForm) DataSource1: TDataSource; DBGrid1: TDBGrid; MainMenu_frmPrincipal: TMainMenu; MenuItem_AplicativoSair: TMenuItem; N1: TMenuItem; MenuItem_AplicativoLogin: TMenuItem; MenuItem_Aplicativo: TMenuItem; procedure MenuItem_AplicativoLoginClick(Sender: TObject); private public vConexao : tConexao; end; var frm_principal: Tfrm_principal; implementation {$R *.lfm} { Tfrm_principal } procedure Tfrm_principal.MenuItem_AplicativoLoginClick(Sender: TObject); begin //vConexao := tConexao.Create; DataSource1.DataSet := vConexao.Listar_Usuarios; end; end. A mensagem de erro que recebo dá a entender que o problema ocorre logo que o zconnection começa a ser configurado, como vocês podem ver pelos trechos comentados eu tentei instanciar o componente também sem sucesso. Não tenho experiencia com POO e tenho certeza que estou cometendo um erro bobo, então peço uma explicação sobre como resolver isso. Agradeço de antemão a quem puder me ajudar.
       
      PS. Estou usando o Lazarus.
    • Por Giovanird
      Olá a todos!

      Abaixo lista minha estrutura em Json. Há grupos que faltam um objeto (TIPO) e ao listar recebo o erro  por não encontrá-lo.
      Existe alguma maneira de verificar se este objeto existe e caso não, ignorar?

      Desde já agradeço a atenção.

       
      ESTUTURA JSON: [ { “titulo”: “JSON”, “data”: “20/10/2020”, “ano”: 2020, “tipo”: novo }, { “titulo”: “HTML”, “data”: “20/10/2020”, “ano”: 2020, “tipo”: usado }, { “titulo”: “PHP”, “data”: “20/10/2020”, “ano”: 2020 } ] CAPTURANDO OS DADOS: $titulo = $decode->titulo; $data = $decode->data; $ano = $decode->ano; $tipo = $decode->tipo;  
       
    • Por vinicius59
      Então... há algum tempo venho pesquisando em vários sites sobre a duvida que eu tenho, ela se consiste em como eu posso fazer (2 botoes) que ao ser acionado cria-se um quadrado pequeno de uma cor que eu vou escolher! Se alguém poder responder 'Me desculpem se essa duvida não for relacionada ao php sou novo aqui'.
    • Por lucas01andre
      Olá pessoa, estou aprendendo JavaScript e quero aprender também boas práticas. Ao olhar de vocês, ao declarar uma função em um objeto é melhor usar a forma tradicional ou a arrow? Por que usar e quando usar uma das duas? Desde já agradeço a ajuda!
    • Por Lucas Natan Cavichioli
      Boa noite galera, estou com uma dificuldade de lógica aqui.. rsrs. Estou consultando uma api de cnpj. Ele me traz um array que contém valores simples e alguns objetos
      exemplo:   
      "atividade_principal": [ { "text": "Atividades de televisão aberta", "code": "60.21-7-00" } ], "data_situacao": "03/11/2005", "nome": "GLOBO COMUNICACAO E PARTICIPACOES S/A", "uf": "RJ", "telefone": "(21) 2540-2623", "atividades_secundarias": [ { "text": "Reprodução de vídeo em qualquer suporte", "code": "18.30-0-02" }, { "text": "Portais, provedores de conteúdo e outros serviços de informação na internet", "code": "63.19-4-00" }, { "text": "Agenciamento de espaços para publicidade, exceto em veículos de comunicação", "code": "73.12-2-00" }, { "text": "Programadoras", "code": "60.22-5-01" } ] ....  
      .... $var = json_decode($json);            // Bloco de código: Seta todos os valores da api menos o cnpj         //define delimitador do foreach em 0.         $jafoi = 0;         $receitawsmodel = new Receitaws();                 foreach($var as $valor){                         if($jafoi == 0){                               foreach($var->atividade_principal as $valor){                                 $receitawsmodel->setRec_atv_prin_code($valor->code);                                 $receitawsmodel->setRec_atv_prin_text($valor->text);                             }                             foreach($var->atividades_secundarias as $valor){                                 var_dump($valor);                                 $array = array($valor->code, $valor->text);                                                                  var_dump($array);                                //aqui eu setava o array com todos os valores tipo: $receitawsmodel->setRec_atv_secundarias($str);                             }                                             $jafoi = 1;                         }                      } .... Tenho que armazenar essas informações no banco. No meu php está assim:
      O primeiro foreach, da certo, pois todo cnpj vai ter apenas uma atividade principal, porém, no segundo foreach a atividade secundária pode ter varios ou nenhuma. 
      Eu criei uma variavel "$jafoi" como um delimitador pra mim conseguir separar os objetos dos valores simples dentro do array. Como está ali eu crio 4 arrays(óbvio porque ele tem 4 atividades secundárias), gostaria de alguma ideia de como eu poderia fazer para que eu juntasse tudo isso em um array só e usasse um implode pra armazenar uma string com todos esses valores.
      Alguém pode me ajudar?
×

Informação importante

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