Você está aqui: Python ::: Dicas & Truques ::: Programação Orientada a Objetos

Como usar construtores em suas classes Python - Programação Orientada a Objetos em Python

Quantidade de visualizações: 599 vezes
Quando estamos usando programação orientada a objetos em Python, é comum gerarmos métodos construtores para nossas classes. Tais métodos são usados para instanciar os objetos de uma classe, fornecendo, em geral, os valores para a inicialização de suas variáveis de instância.

Os construtores das classes Python são criados a partir do método __init__(), que é chamado todas as vezes que uma nova instância da classe é criada.

O construtor padrão de uma classe é um método simples e que não aceita nenhum argumento. Este tipo de construtor possui apenas um parâmetro, que é uma referência à instância que está sendo construída. Veja o trecho de código a seguir para melhor entendimento:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# definição da classe Produto
class Produto:
  # método construtor padrão sem argumentos
  def __init__(self):
    self.categoria = "Alimentos"
 
  # um método para exibir o nome da categoria
  def exibir_categoria(self):
    print("Nome da categoria: {0}".format(self.categoria))

# método principal
def main():
  # vamos criar um novo objeto da classe Produto
  p = Produto()  

  # vamos chamar o método que exibe o nome da categoria
  p.exibir_categoria()

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Nome da categoria: Alimentos

Note que este exemplo não é muito útil, já que todos os produtos terão o mesmo nome de categoria. Entra em cena o construtor parametrizado.

Um construtor parametrizado é aquele que permite a passagem de argumentos, além da referência à instância sendo criada. Dessa forma, os valores fornecidos ao construtor poderão ser usados na inicialização das variáveis de instância, tornando-as únicas para cada um dos objetos criados. Veja o exemplo a seguir:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

# definição da classe Produto
class Produto:
  # método construtor padrão sem argumentos
  def __init__(self, categoria):
    self.categoria = categoria
 
  # um método para exibir o nome da categoria
  def exibir_categoria(self):
    print("Nome da categoria: {0}".format(self.categoria))

# método principal
def main():
  # vamos criar dois novos objetos da classe Produto
  p1 = Produto("Alimentos")  
  p2 = Produto("Vestuário")

  # vamos chamar o método que exibe o nome da categoria
  p1.exibir_categoria()
  p2.exibir_categoria()

if __name__== "__main__":
  main()

Ao executar este novo código Python nós teremos o seguinte resultado:

Nome da categoria: Alimentos
Nome da categoria: Vestuário

Agora a nossa classe está mais completa, visto que cada instância possui o seu próprio valor para a variável categoria.

Link para compartilhar na Internet ou com seus amigos:

C++ ::: Dicas & Truques ::: Matemática e Estatística

Como calcular MDC em C++ - C++ para matemática

Quantidade de visualizações: 36573 vezes
Como calcular MDC em C++

Atualmente a definição de Máximo Divisor Comum (MDC) pode ser assim formalizada:

Sejam a, b e c números inteiros não nulos, dizemos que c é um divisor comum de a e b se c divide a (escrevemos c|a) e c divide b (c|b). Chamaremos D(a,b) o conjunto de todos os divisores comum de a e b.

O trecho de código abaixo mostra como calcular o MDC de dois números informados:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <iostream>

using namespace std;

int MDC(int a, int b){
  int resto;

  while(b != 0){
    resto = a % b;
    a = b;
    b = resto;
  }

  return a;
}

int main(int argc, char *argv[]){
   int x, y;

   cout << "Este programa permite calcular o MDC\n";
   cout << "Informe o primeiro valor: ";
   cin >> x;
   cout << "Informe o segundo valor: ";
   cin >> y;

   cout << "\nO Máximo Divisor Comum de "
     << x << " e " << y << " é " << MDC(x, y) << endl;

   system("PAUSE");
   return EXIT_SUCCESS;
}

Ao executar este código C++ nós teremos o seguinte resultado:

Este programa permite calcular o MDC
Informe o primeiro número: 12
Informe o segundo número: 9
O Máximo Divisor Comum de 12 e 9 é 3


C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico

Exercício Resolvido de C - Ler três números inteiros e indicar se eles estão em ordem crescente ou decrescente

Quantidade de visualizações: 765 vezes
Pergunta/Tarefa:

Escreva um programa C que pede para o usuário informar três números inteiros e informa se eles estão em ordem crescente ou decrescente. Se os números estiverem em ordem crescente, escreva "Ordem Crescente". Se estiverem em ordem decrescente, escreva "Ordem Decrescente". Do contrário escreva "Sem ordem definida".

Sua saída deverá ser parecida com:

Primeiro número: 4
Segundo número: 8
Terceiro número: 11
Ordem Crescente
Resposta/Solução:

Veja a resolução comentada deste exercício em C:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do exercício
  int a, b, c;
	
  setlocale(LC_ALL,""); // para acentos do português
  
  // vamos pedir para o usuário informar três números
  printf("Primeiro número: ");
  scanf("%d", &a);
  printf("Segundo número: ");
  scanf("%d", &b);
  printf("Terceiro número: ");
  scanf("%d", &c);
    
  // os números estão em ordem crescente?
  if (a < b && b < c){
    printf("Ordem Crescente");
  }
  // os números estão em ordem decrescente?
  else if (a > b && b > c){
    printf("Ordem Decrescente");
  }
  // sem ordem definida
  else{
    printf("Sem ordem definida");
  } 
	
  printf("\n\n");
  system("PAUSE");	
  return 0;
}



Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca

Estruturas de Dados em Java - Como obter o nó com menor valor em uma árvore binária de busca em Java

Quantidade de visualizações: 2913 vezes
Em exemplos dessa seção nós vimos como criar árvores binárias e árvores binárias de busca em Java e como pesquisar ou fazer a sua travessia, visitando cada um dos nós. Nesta dica mostrarei como obter o nó com o menor valor em uma árvore binária. O truque aqui é descer o lado esquerdo da árvore até o último nó. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// método que permite retornar o menor nó de uma árvore
// binária de busca
public No retornarMenorElemento(){
  // chama a versão recursiva do método
  return retornarMenorElemento(raiz);
}
  
public No retornarMenorElemento(No no){
  if((no == null) || (no.getEsquerdo() == null)){
    return no; // ponto de parada
  }
  else{ // vamos continuar descendo do lado esquerdo
    return retornarMenorElemento(no.getEsquerdo());
  }
}

Este método faz parte da classe ArvoreBinariaBusca.java. Veja agora como chamá-lo a partir da classe principal, ou seja, a classe de teste:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arvore_binaria;

import java.util.Scanner;

public class ArvoreBinariaTeste {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);  
       
    // vamos criar um novo objeto da classe ArvoreBinariaBusca
    ArvoreBinariaBusca arvore = new ArvoreBinariaBusca();
    
    // vamos inserir 5 valores na árvore
    for(int i = 0; i < 5; i++){
      System.out.print("Informe um valor inteiro: ");
      int valor = Integer.parseInt(entrada.nextLine());
       
      // vamos inserir o nó e verificar o sucesso da operação
      if(!arvore.inserir(valor)){
        System.out.println("Não foi possível inserir." +
          " Um elemento já contém este valor.");  
      }
    }
     
    // vamos o menor elemento na árvore binária de busca
    System.out.println("\nO menor nó é: " + 
      arvore.retornarMenorElemento().getValor());
     
    System.out.println("\n");
  }
}

Ao executar este código teremos o seguinte resultado:

Informe um valor inteiro: 5
Informe um valor inteiro: 12
Informe um valor inteiro: 87
Informe um valor inteiro: 1
Informe um valor inteiro: 3

O menor nó é: 1



Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como ordenar um vetor de inteiros em ordem decrescente em Java

Quantidade de visualizações: 20436 vezes
Nesta dica mostrarei como é possível ordenar um array (vetor) de ints em ordem decrescente usando o método sort() da classe Arrays e um método inverter() personalizado. É claro que há várias outras formas de se conseguir realizar esta tarefa. Espero que esta seja mais uma técnica adicionada ao seu arsenal.

Veja o código Java completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;
 
import java.util.*;

public class Estudos{
  public static void main(String[] args){
    // vamos declarar e construir um vetor de 5 inteiros
    int[] valores = new int[5];
 
    // inicializa os elementos do array
    valores[0] = 23;
    valores[1] = 65;
    valores[2] = 2;
    valores[3] = 87;
    valores[4] = 34;
	
    // ordena os valores
    Arrays.sort(valores);
    System.out.println("Ordenado em ordem crescente:");
    for(int valor : valores){
      System.out.print(valor + "  ");  
    }
    
    // vamos inverter o vetor agora
    inverter(valores);
    // exibe os valores dos elementos do array
    // usando o laço for melhorado
    System.out.println("\nOrdenado em ordem decrescente:");
    for(int valor : valores){
      System.out.print(valor + "  ");  
    }
  
    System.out.println("\n"); 
    System.exit(0);
  }

  // método que recebe um array e inverte a ordem
  // de seus elementos
  public static void inverter(int[] b){
    int esquerdo = 0;
    int direito = b.length-1;
  
    while (esquerdo < direito) {
      int temp = b[esquerdo]; 
      b[esquerdo]  = b[direito]; 
      b[direito] = temp;
     
      esquerdo++;
      direito--;
    }
  } 
}

Ao executar este código Java nós teremos o seguinte resultado:

Ordenado em ordem crescente:
2 23 34 65 87
Ordenado em ordem decrescente:
87 65 34 23 2


Java ::: Fundamentos da Linguagem ::: Tipos de Dados

Apostila Java para iniciantes - Como usar o tipo de dados referência em seus códigos Java

Quantidade de visualizações: 11318 vezes
O Java contém 8 tipos de dados primitivos e um tipo referência. No entanto, poucos livros dedicam exemplos a este último tipo. Vamos começar analisando o trecho de código abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{
  public static void main(String args[]){
    String nome = "Osmar J. Silva";  

    System.out.println(nome);    

    System.exit(0);
  }
}

Se observarmos este código, veremos que a variável nome não é um tipo primitivo e sim uma referência. Desta forma, qualquer variável ou constante que não seja do tipo primitivo é uma referência a um objeto de uma classe, interface, etc. Arrays não são tipos primitivos também. Assim, variáveis ou constantes que apontam para arrays (vetores e matrizes) também são referências.

É importante entender bem a noção de referências, visto que é por meio delas que acessamos um determinado objeto na memória. Além disso, como objetos e arrays são sempre passados por referência aos métodos Java, fica fácil entender como várias referências podem apontar para o mesmo objeto ao mesmo tempo. E, caso você tenha esquecido, os tipos primitivos nunca são passados por referêcia aos métodos. Em vez disso, eles são passados por valor (o que quer dizer que uma alteração nos argumentos fornecidos ao métodos não altera a cópia original da variável).


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 65 usuários muito felizes estudando em nosso site.