Você está aqui: PHP ::: Dicas & Truques ::: Programação Orientada a Objetos |
|
Programação orientada a objetos em PHP - Como usar construtores em suas classes PHPQuantidade de visualizações: 11373 vezes |
|
Muitas vezes precisamos inicializar propriedades de um objeto de uma classe no momento em que este é criado. Para isso podemos usar um método construtor. Um método construtor, que em PHP é definido usando-se __construct() é chamado no exato momento em que efetuamos uma chamada a new. Veja um exemplo no qual exibimos uma mensagem alertando que um objeto de uma classe acaba de ser criado: <? class Pessoa{ public function __construct(){ echo "Fui criada"; ...... Execute este código e veja o resultado. Note que um construtor deve, em raríssimas ocasiões, ser marcado com o modificador public. Além disso, um construtor só se torna realmente útil quando o usamos para inicializar as propriedades do objeto recém-criado. Veja: <? class Pessoa{ public $nome; public function __construct($nome){ $this->nome = $nome; ...... Aqui nós fornecemos o valor para a propriedade $nome na mesma instrução que cria a instância da classe. |
|
Link para compartilhar na Internet ou com seus amigos: | |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como detectar alterações no conteúdo de um JTextAreaQuantidade de visualizações: 8804 vezes |
Nesta dica veremos como é possível escrever uma aplicação Java Swing que detecta quando o conteúdo de um controle JTextArea é alterado. Para isso nós vamos fazer a janela JFrame implementar a interface DocumentListener e fornecer comportamento para seus método insertUpdate(), removeUpdate() e changedUpdate(). O resultado do código é refletido na imagem abaixo: E agora o código Java Swing completo para o exemplo: package arquivodecodigos; import javax.swing.*; import java.awt.*; import javax.swing.event.*; public class Estudos extends JFrame implements DocumentListener{ JTextArea textArea; JLabel aviso; public Estudos() { super("Detectando alterações em um JTextArea"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); textArea = new JTextArea(10, 20); textArea.setLineWrap(true); textArea.getDocument().addDocumentListener(this); aviso = new JLabel("Aviso de alterações"); c.add(textArea); ...... |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
Algorítmos Resolvidos de Java - A classe Retangulo (construtores, getters e setters, encapsulamento e static)Quantidade de visualizações: 13966 vezes |
Exercícios Resolvidos de Java - A classe Retangulo (construtores, getters e setters, encapsulamento e static) Pergunta/Tarefa: Escreva uma classe Retangulo para representar um retângulo. A classe deve conter: a) Dois campos de dados do tipo double chamados largura e altura que especificam a largura e a altura do retângulo. Os valores padrões são 1 tanto para a largura quanto para a altura. b) Um campo de dado do tipo String chamado cor que especifica a cor do retângulo. Para este exercício em particular, assuma que TODOS os retângulos possuirão a mesma cor. A cor padrão é branco. c) Um construtor sem argumentos que cria um retângulo padrão. d) Um construtor que cria um retângulo com a largura e altura especificadas. e) Métodos get() e set() para os três campos de dados da classe. f) Um método chamado getArea() que retorna a área do retângulo. g) Um método chamado getPerimetro() que retorna o perímetro do retângulo. Escreva um programa de teste que cria dois objetos da classe Retangulo. Sua saída deverá ser parecida com: Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: Retangulo.java package estudos; public class Retangulo { private double largura; // largura do retângulo private double altura; // altura do retângulo // O exercício pede que TODOS os retângulos tenham a mesma cor // consulte a dica http://www.arquivodecodigos.net/dicas/1158 para mais // detalhes sobre o modificador static private static String cor = "branco"; // cor do retângulo // construtor sem argumentos public Retangulo(){ this.largura = 1; this.altura = 1; } // construtor que permite especificar a largura e a altura public Retangulo(double largura, double altura){ this.largura = largura; this.altura = altura; } // obtém a altura public double getAltura() { return altura; } // define a altura public void setAltura(double altura){ ...... Agora o teste no método main(): package estudos; public class Estudos { public static void main(String[] args) { // vamos criar uma instância da classe Retangulo com // os valores padrões Retangulo a = new Retangulo(); // agora vamos informar a largura e a altura Retangulo b = new Retangulo(10, 5); // os dois retângulos terão a cor verde Retangulo.setCor("verde"); // vamos mostrar os resultados do primeiro retângulo System.out.println("Primeiro retângulo"); System.out.println("Largura: " + a.getLargura()); System.out.println("Altura: " + a.getAltura()); System.out.println("Cor: " + Retangulo.getCor()); ...... |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Saiba o que é Reflexão (Reflection) em Java - Como usar Reflexão (Reflection) na linguagem Java - RevisadoQuantidade de visualizações: 17906 vezes |
Reflection (ou Reflexão), também conhecida como RTI (Runtime Type Information) em algumas linguagens, é um mecanismo para descobrir dados a respeito de um programa em tempo de execução. Reflection em Java nos permite descobrir informações sobre atributos ou membros (campos), métodos e construtores de classes. Podemos também operar nos campos e métodos que descobrimos. A Reflection permite o que é normalmente chamada de programação dinâmica em Java. A Reflection em Java é conseguida usando a Java Reflection API. Esta API consiste de classes nos pacotes java.lang e java.lang.reflect. Antes de prosseguirmos, veja um exemplo de como podemos listar todos os métodos públicos da classe Object: package arquivodecodigos; import java.lang.reflect.*; public class Estudos{ public static void main(String args[]){ // vamos carregar a classe Object try{ Class c = Class.forName("java.lang.Object"); // obtém os nomes dos métodos Method[] metodos = c.getMethods(); ...... Ao executarmos este código nós teremos o seguinte resultado: wait wait wait equals toString hashCode getClass notify notifyAll Eis uma lista das coisas que podemos fazer com a Java Reflection API: 1) Determinar a classe de um objeto; 2) Obter informações sobre os modificadores, campos (atributos), métodos, construtores e superclasses de uma classe; 3) Descobrir quais constantes e declarações de métodos pertencem a uma interface; 4) Criar uma instância de uma classe cujo nome não sabemos até o tempo de execução; 5) Obter e definir o valor do campo de um objeto; 6) Invocar um método em um objeto; 7) Criar um novo array, cujo tamanho e tipo de dados só saberemos em tempo de execução. A Java Reflection API é geralmente usada para criar ferramentas de desenvolvimento tais como debuggers, class browsers e construtores de GUI. Geralmente, neste tipo de ferramentas, precisamos interagir como classes, objetos, métodos e campos, e não sabemos quais em tempo de compilação. Assim, a aplicação deve, dinamicamente, encontrar e acessar estes itens. Esta dica foi revisada e testada no Java 8. |
Python ::: Dicas & Truques ::: Lista (List) |
Vetores e matrizes em Python - Como inserir itens em posições aleatórias de uma listaQuantidade de visualizações: 9012 vezes |
Este exemplo mostra como adicionar itens em posições aleatórias de uma lista Python. Note como usamos o método insert() da classe List passando um valor randômico para o índice no qual o novo elemento será inserido. Veja o código completo para a dica: # vamos importar o módulo random import random def main(): # cria uma lista vazia valores = [] # início do laço for for i in range(1, 11): valor = int(input("Informe um inteiro: ")) if(len(valores) == 0): valores.insert(0, valor) else: ...... Ao executarmos este código Python nós teremos o seguinte resultado: Informe um inteiro: 9 Valores na lista: [9] Informe um inteiro: 3 Valores na lista: [3, 9] Informe um inteiro: 2 Valores na lista: [2, 3, 9] Informe um inteiro: 8 Valores na lista: [2, 3, 8, 9] Informe um inteiro: 10 Valores na lista: [10, 2, 3, 8, 9] Informe um inteiro: 18 Valores na lista: [18, 10, 2, 3, 8, 9] Informe um inteiro: 30 Valores na lista: [18, 10, 30, 2, 3, 8, 9] Informe um inteiro: 60 Valores na lista: [18, 10, 30, 2, 3, 8, 60, 9] Informe um inteiro: 67 Valores na lista: [18, 10, 67, 30, 2, 3, 8, 60, 9] Informe um inteiro: 82 Valores na lista: [18, 10, 67, 30, 2, 3, 8, 82, 60, 9] |
Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as ocorrências de uma substring em uma string em Ruby usando a função scan()Quantidade de visualizações: 8082 vezes |
Podemos obter a quantidade de vezes em que uma substring aparece em uma string Ruby usando o método scan() da classe String. Este método nos permite executar um bloco de código a cada vez que a substring fornecida a ele for encontrada. Veja o exemplo:# declara e inicializa uma variável string frase = "Ruby? Gosto muito de Ruby" puts "A frase é: " + frase # vamos obter a quantidade de vezes em que a # substring "Ruby" aparece na frase ...... Ao executarmos este código Ruby nós teremos o seguinte resultado: A frase é: Ruby? Gosto muito de Ruby A substring "Ruby" aparece 2 vezes |
Desafios, Exercícios e Algoritmos Resolvidos de Ruby |
Veja mais Dicas e truques de Ruby |
Dicas e truques de outras linguagens |
MySQL - Como adicionar horas ao valor de um campo DATETIME ou TIME usando a função ADDTIME() do MySQL React.js - Aprenda a desenvolver aplicações React diretamente no HTML, sem usar a ferramenta create-react-app |
Quem Somos |
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Civil pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 20 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
|
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..
|
Linguagens Mais Populares |
1º lugar: Java |