Membro Pro Verificado bnobre Postado Quarta as 13:33 Membro Pro Verificado Postado Quarta as 13:33 Olá a todos, Fiquei com uma dúvida em relação ao vídeo abaixo, no minuto 3:52. O autor mostra a diferença entre Métodos de Objeto e Métodos de Classe, porém ele faz uma coisa que eu nunca tinha visto... Ele consegue acessar um Método de Objeto sem instanciar ele, apenas usando a variável, isso no minuto 3:52. Eu sempre achei que era necessário instanciar um objeto para usar um Método de Objeto (que não é class function ou class procedure). Então qual a vantagem de usar o class function ou class procedure ao invés de fazer como no minuto 3:52 do vídeo. Desde já agradeço a atenção
Consultores Juliomar Marchetti Postado Quarta as 13:48 Consultores Postado Quarta as 13:48 Bom dia creio que a forma da explicação não tenha ficado claro. mas tu pode ter uma function ou procedure e fazer o acesso delas usando o class , mas nada dentro dela pode fazer referencia a classe se tu por acaso possuir algo type TMinha = class private X: integer; public class function teste:boolean; end; ///na sua implementação pode acessar a X class function TMinha.teste:boolean; begin // a X aqui não acessa. end; é para algo especifico Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
Membro Pro Verificado bnobre Postado Quarta as 13:51 Autor Membro Pro Verificado Postado Quarta as 13:51 1 minuto atrás, Juliomar Marchetti disse: Bom dia creio que a forma da explicação não tenha ficado claro. mas tu pode ter uma function ou procedure e fazer o acesso delas usando o class , mas nada dentro dela pode fazer referencia a classe se tu por acaso possuir algo type TMinha = class private X: integer; public class function teste:boolean; end; ///na sua implementação pode acessar a X class function TMinha.teste:boolean; begin // a X aqui não acessa. end; é para algo especifico Oi... Sim ... isso eu tinha entendido... Eu fiquei intrigado em como ele pode acessar a função MENSAGEM da classe TTeste sem instancia-la, apenas usando a variável Teste do tipo TTeste. Agora que sei que isso é possível, em que situação isso seria usado?
Consultores Juliomar Marchetti Postado Quarta as 14:14 Consultores Postado Quarta as 14:14 21 minutos atrás, bnobre disse: em que situação isso seria usado? vai depender do seu código meu amigo sua analise de onde vai precisar chamar sem precisar instanciar a classe um método dela, seja function ou proceduer Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
Membro Pro Verificado bnobre Postado Quarta as 14:20 Autor Membro Pro Verificado Postado Quarta as 14:20 4 minutos atrás, Juliomar Marchetti disse: vai depender do seu código meu amigo sua analise de onde vai precisar chamar sem precisar instanciar a classe um método dela, seja function ou proceduer Sim, mas como eu costumo usar class function ou class procedure para não precisar instanciar o objeto, não me atentei que era possível fazer usando métodos de objeto normais e menos ainda vejo porque usar essa técnica ao invés de class function ou class procedure.
Consultores Juliomar Marchetti Postado Quarta as 14:27 Consultores Postado Quarta as 14:27 5 minutos atrás, bnobre disse: Sim, mas como eu costumo usar class function ou class procedure para não precisar instanciar o objeto, não me atentei que era possível fazer usando métodos de objeto normais e menos ainda vejo porque usar essa técnica ao invés de class function ou class procedure. cuidado com a premissa de que se preciso apertar um parafuso tenho um martelo, não vou usar o martelo , mas sim vou providenciar uma chave para apertar ele. só porque existe a class não devo usar ela em todos. é só em metodos que vou precisar chamar sem instanciar. (exemplo uma conversão de enumerador para string etc.) Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
Membro Pro Verificado bnobre Postado Quarta as 14:50 Autor Membro Pro Verificado Postado Quarta as 14:50 19 minutos atrás, Juliomar Marchetti disse: cuidado com a premissa de que se preciso apertar um parafuso tenho um martelo, não vou usar o martelo , mas sim vou providenciar uma chave para apertar ele. só porque existe a class não devo usar ela em todos. é só em metodos que vou precisar chamar sem instanciar. (exemplo uma conversão de enumerador para string etc.) Concordo... Porém da mesma maneira que vou usar métodos de classe apenas em métodos aonde não preciso realmente instanciar o objeto (pois o método não fará nenhuma referência a propriedades ou outros métodos do objeto), não vejo porque nesse caso usar em substituição um método de objeto usando apenas a variável sem instancia-la (conforme trecho que relatei do vídeo). Ou estou equivocado?
Fundadores Solution Daniel Simoes Postado Quarta as 16:20 Fundadores Solution Postado Quarta as 16:20 Em teoria você pode chamar um método sem precisar instanciar a classe... Mas não conseguirá acessar variáveis ou objetos internos da Classe (pois eles ainda não foram criados) Eu acho Class Function totalmente desnecessário... e percebo muito programador fazendo mal uso dela... Pela orientação Objeto... o único método que faz sentido atuar como uma Classe Function, é construtor (geralmente o 'Create')... 1 1 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora