Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

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

Programação orientada a objetos em Java: Classes, objetos, métodos e variáveis de instância

Quantidade de visualizações: 18418 vezes
Programação orientada a objetos (OOP) em Java: Classes, objetos, métodos e variáveis de instância

A melhor forma de entender a programação orientada a objetos é começar com uma analogia simples. Suponha que você queira dirigir um carro e fazê-lo ir mais rápido pressionado o acelerador. O que deve acontecer antes que você seja capaz de fazer isso? Bem, antes que você possa dirigir um carro, alguém tem que projetá-lo. Um carro geralmente começa com desenhos feitos pelos engenheiros responsáveis por tal tarefa, tal qual a planta de uma casa. Tais desenhos incluem o projeto de um acelerador que possibilita ao carro ir mais rápido. O pedal do acelerador "oculta" os mecanismos complexos responsáveis por fazer o carro ir mais rápido, da mesma forma que o pedal de freio "oculta" os mecanismos que fazem o carro ir mais devagar e o volante "oculta" os mecanismos que fazem com que o carro possa virar para a direita ou esquerda. Isso permite que pessoas com pequeno ou nenhum conhecimento de motores possam facilmente dirigir um carro.

Infelizmente, não é possível dirigir o projeto de um carro. Antes que possamos dirigí-lo, o carro deve ser construído a partir do projeto que o descreve. Um carro já finalizado tem um pedal de aceleração de verdade, que faz com que o carro vá mais rápido. Ainda assim, é preciso que o motorista pressione o pedal. O carro não acelerará por conta própria.

Agora vamos usar nosso exemplo do carro para introduzir alguns conceitos de programação importantes à programação orientada a objetos. A execução de uma determinada tarefa em um programa exige um método. O método descreve os mecanismos que, na verdade, executam a tarefa. O método oculta tais mecanismos do usuário, da mesma forma que o pedal de aceleração de um carro oculta do motorista os mecanismos complexos que fazem com que um carro vá mais rápido. Em Java, começamos criando uma unidade de programa chamada classe para abrigar um método, da mesma forma que o projeto de um carro abriga o design do pedal de acelerador. Em uma classe fornecemos um ou mais métodos que são projetados para executar as tarefas da classe. Por exemplo, a classe que representa uma conta bancária poderia conter muitos métodos, incluindo um método para depositar dinheiro na conta, outro para retirar dinheiro, um terceiro para verificar o saldo, e assim por diante.

Da mesma forma que não podemos dirigir o projeto de um carro, nós não podemos "dirigir" uma classe. Da mesma forma que alguém teve que construir um carro a partir de seu projeto antes que pudessémos dirigí-lo, devemos construir um objeto de uma classe antes de conseguirmos executar as tarefas descritas nela.

Quando dirigimos um carro, o pressionamento do acelerador envia uma mensagem ao carro informando-o da tarefa a ser executada (neste caso informando-o de que queremos ir mais rápido). Da mesma forma, enviamos mensagens aos objetos de uma classe. Cada mensagem é uma chamada de método e informa ao objeto qual ou quais tarefas devem ser executadas.

Até aqui nós usamos a analogia do carro para introduzir classes, objetos e métodos. Já é hora de saber que um carro possui atributos (propriedades) tais como cor, o número de portas, a quantidade de gasolina em seu tanque, a velocidade atual, etc. Tais atributos são representados como parte do projeto do carro. Quando o estamos dirigindo, estes atributos estão sempre associados ao carro que estamos usando, e cada carro construído a partir do projeto sofrerá variações nos valores destes atributos em um determinado momento. Da mesma forma, um objeto tem atributos associados a ele quando o usamos em um programa. Estes atributos são definidos na classe a partir da qual o objeto é instanciado (criado) e são chamados de variáveis de instância da classe.

Veremos agora como definir uma classe em Java e usar um objeto desta classe em um programa. Veja o trecho de código abaixo (todo este código pode ser digitado e salvo em um arquivo com o nome Estudos.java):
// Cria uma classe chamada Cliente que possui acesso 
// padrão, ou seja, acesso de pacote (package access)
class Cliente{
  private String nome;  

  // Um método que permite definir um valor
  // para a variável privada nome
  public void setNome(String nome){
    this.nome = nome;
  }

  // Um método que permite obter o valor
  // da variável privada nome
  public String getNome(){
    return this.nome;
  }  
}

// Um programa que usa a classe Cliente
public class Estudos{
  public static void main(String args[]){
    // Cria uma instância da classe Cliente
    Cliente cliente = new Cliente();

    // Define um nome para o cliente
    cliente.setNome("Osmar J. Silva");

    // Obtém o nome do cliente
    String nome = cliente.getNome();
    System.out.println(nome);   
  }
}


Link para compartilhar na Internet ou com seus amigos:

Java ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca)

Como implementar a ordenação Quicksort em Java - Apostila de Java para iniciantes

Quantidade de visualizações: 389 vezes
A ordenação Quicksort é um dos algorítmos de ordenação mais encontrados em aplicações reais de programação. No Delphi esta ordenação é encontrada no objeto TList. No Java podemos encontrá-lo no método Arrays.sort(). Na linguagem C a ordenação Quicksort é implementada na função qsort() da biblioteca padrão.

O algoritmo de ordenação Quicksort é do tipo dividir para conquistar (divide-and-conquer principle). Neste tipo de algoritmo o problema é dividido em sub-problemas e a solução é concatenada quando as chamadas recursivas atingirem o caso base.

O vetor (ou array) a ser ordenado é dividido em duas sub-listas por um elemento chamado pivô, resultando em uma lista com elementos menores que o pivô e outra lista com os elementos maiores que o pivô. Esse processo é repetido para cada chamada recursiva. Sim, a ordenação Quicksort faz uso extensivo de recursividade, razão pela qual devemos ter muito cuidado para não estourar a pilha do sistema.

Existem muitos estudos sobre o pivô ideal para a ordenação Quicksort. Nessa dica adotarei o último elemento do array ou sub-array como pivô. Em vetores não ordenados essa estratégia, em geral, resulta em uma boa escolha.

Vamos ao código Java então? Veja um programa Java completo demonstrando o uso da ordenação Quicksort para um array de 10 elementos inteiros:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // vamos declarar um array de 10 elementos
    int valores[] = new int[10];
    
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir ao usuário para informar os valores para o vetor
    for(int i = 0; i < valores.length; i++){
      System.out.print("Informe o valor do elemento " + i + ": ");
      valores[i] = Integer.parseInt(entrada.nextLine()); 
    }

    // vamos mostrar o array informado
    System.out.println("\nO array informado foi:\n");
    for(int i = 0; i < valores.length; i++){
      System.out.print(valores[i] + "  ");
    }
    
    // vamos ordenar o vetor usando a ordenação Quicksort
    quickSort(valores, 0, valores.length - 1);
    
    System.out.println("\n\nO array ordenado é:\n");
    for(int i = 0; i < valores.length; i++){
      System.out.print(valores[i] + "  ");
    }
    
    System.out.println("\n\n");
  }

  // função de implementação da ordenação Quicksort
  public static void quickSort(int vetor[], int inicio, int fim) {
    // o início é menor que o fim?
    if (inicio < fim) {
      // vamos obter o novo índice da partição
      int indiceParticao = particionar(vetor, inicio, fim);

      // efetuamos novas chamadas recursivas
      quickSort(vetor, inicio, indiceParticao - 1);
      quickSort(vetor, indiceParticao + 1, fim);
    }
  }
  
  // função que retorna o índice de partição
  private static int particionar(int vetor[], int inicio, int fim) {
    // para guardar o pivô
    int pivot = vetor[fim];
    int i = (inicio - 1);
 
    for (int j = inicio; j < fim; j++) {
      if (vetor[j] <= pivot) {
        i++;

        // fazemos a troca
        int temp = vetor[i];
        vetor[i] = vetor[j];
        vetor[j] = temp;
      }
    }

    // efetua a troca
    int temp = vetor[i + 1];
    vetor[i + 1] = vetor[fim];
    vetor[fim] = temp;

    return i + 1;
  }
}

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

Informe o valor do elemento 0: 7
Informe o valor do elemento 1: 2
Informe o valor do elemento 2: 43
Informe o valor do elemento 3: 1
Informe o valor do elemento 4: 9
Informe o valor do elemento 5: 6
Informe o valor do elemento 6: 22
Informe o valor do elemento 7: 3
Informe o valor do elemento 8: 37
Informe o valor do elemento 9: 5

O array informado foi:

7 2 43 1 9 6 22 3 37 5

O array ordenado é:

1 2 3 5 6 7 9 22 37 43


Java ::: Dicas & Truques ::: Matemática e Estatística

Como resolver uma equação do segundo grau em Java - Como calcular Bhaskara em Java

Quantidade de visualizações: 2932 vezes
Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando a linguagem Java.

Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a &#8800; 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita.

Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0.

Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente.

Como resolver uma equação do 2º grau

Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns:

a) Fórmula de Bhaskara;
b) Soma e produto.

O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa.

Como resolver uma equação do 2º grau usando Bhaskara

Como nosso código Java vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja:

\[\Delta =b^2-4ac\]

Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades:

a) Se determinante > 0, então a equação possui duas soluções reais.
b) Se determinante = 0, então a equação possui uma única solução real.
c) Se determinante < 0, então a equação não possui solução real.

Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara:

\[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\]

Vamos agora ao código Java. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos{
  public static void main(String[] args){
    // para efetuar a leitura do usuário
    Scanner entrada = new Scanner(System.in);
    
    // os coeficientes
    double a, b, c;
    // as duas raizes, a imaginaria e o discriminante
    double raiz1, raiz2, imaginaria, discriminante;

    // vamos pedir para o usuário informar os valores dos coeficientes
    System.out.print("Valor do coeficiente a: ");
    a = Double.parseDouble(entrada.nextLine());
    System.out.print("Valor do coeficiente b: ");
    b = Double.parseDouble(entrada.nextLine());
    System.out.print("Valor do coeficiente c: ");
    c = Double.parseDouble(entrada.nextLine());
    
    // vamos calcular o discriminante
    discriminante = (b * b) - (4 * a * c);
    
    // a equação possui duas soluções reais?
    if(discriminante > 0){
      raiz1 = (-b + Math.sqrt(discriminante)) / (2 * a);
      raiz2 = (-b - Math.sqrt(discriminante)) / (2 * a);
      System.out.println("Existem duas raizes: x1 = " + raiz1 
        + " e x2 = " + raiz2);
    }
    // a equação possui uma única solução real?
    else if(discriminante == 0){
      raiz1 = raiz2 = -b / (2 * a);
      System.out.println("Existem duas raizes iguais: x1 = " 
         + raiz1 + " e x2 = " + raiz2);  	
    }
    // a equação não possui solução real?
    else if(discriminante < 0){
      raiz1 = raiz2 = -b / (2 * a);
      imaginaria = Math.sqrt(-discriminante) / (2 * a);
      System.out.println("Existem duas raízes complexas: x1 = " + 
	raiz1 + " + " + imaginaria + " e x2 = " + raiz2 
           + " - " + imaginaria);
    }
  }
}

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

Valor do coeficiente a: 1
Valor do coeficiente b: 2
Valor do coeficiente c: -3
Existem duas raizes: x1 = 1.0 e x2 = -3.0


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

Exercício Resolvido de Java - Faça um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e mostre-a expressa em dias

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

Faça um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e mostre-a expressa em dias. Leve em consideração o ano com 365 dias e o mês com 30. (Ex: 3 anos, 2 meses e 15 dias = 1170 dias.)

Resposta/Solução:

Para a entrada do usuário, nós vamos usar um objeto da classe Scanner. Veja a resolução comentada:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package arquivodecodigos;

import java.util.Scanner;

public class Estudos{
  public static void main(String args[]){
    // vamos usar um objeto Scanner para ler a entrada
    // do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos ler a quantidade de anos
    System.out.print("Quantidade de anos: ");
    int anos = Integer.parseInt(entrada.nextLine());
    
    // vamos ler a quantidade de meses
    System.out.print("Quantidade de meses: ");
    int meses = Integer.parseInt(entrada.nextLine());
    
    // vamos ler a quantidade de dias
    System.out.print("Quantidade de dias: ");
    int dias = Integer.parseInt(entrada.nextLine());
    
    // vamos calcular a quantidade de dias
    int quant_dias = (anos * 365) + (meses * 30) + dias;
    
    // e mostramos o resultado
    System.out.println("Idade em dias: " + quant_dias);
  }
} 

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

Quantidade de anos: 3
Quantidade de meses: 2
Quantidade de dias: 15
Idade em dias: 1170


Java ::: Fundamentos da Linguagem ::: Estruturas de Controle

Tutorial de Java - Como usar a instrução condicional if e if...else do Java

Quantidade de visualizações: 53992 vezes
Instruções if e if...else permitem executar trechos de códigos baseado em condições. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

public class Estudos{
  public static void main(String args[]){
    int valor = 5;
    
    if(valor > 3)
      System.out.println("Valor maior que 3");
  }
}

Neste programa, a instrução

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

System.out.println("Valor maior que 3");

será executada somente se o teste (valor > 3) for verdadeiro. Observe que a expressão de teste deverá sempre ser do tipo boolean (true ou false).

Neste exemplo temos apenas uma instrução a ser executada. Isso dispensa o uso das chaves ao redor do bloco de códigos. Se o bloco contiver mais de uma instrução, as chaves são necessárias. Veja:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

public class Estudos{
  public static void main(String args[]){
    int valor = 5;
    
    if(valor > 3){
      System.out.println("Valor maior que 3");
      System.out.println("O valor é: " + valor);
    }
  }
} 

A instrução if...else (se...senão) é usada quando queremos fornecer um caminho alternativo ao código. Veja:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

public class Estudos{
  public static void main(String args[]){
    int valor = 1;
    
    if(valor > 3)
      System.out.println("Valor maior que 3");
    else
      System.out.println("Valor menor que 3");
  }
}

Você pode ainda usar if...else if...else (se...senão se...senão). Veja:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

public class Estudos{
  public static void main(String args[]){
    int valor = 3;
    
    if(valor > 3)
      System.out.println("Valor maior que 3");
    else if(valor < 3)
      System.out.println("Valor menor que 3");
    else
      System.out.println("Valor é igual a 3");
  }
} 



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: 15116 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

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

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){
    this.altura = altura;
  }

  // obtém a largura
  public double getLargura(){
    return largura;
  }

  // define a largura
  public void setLargura(double largura){
    this.largura = largura;
  }
  
  // obtém a cor de TODOS os retângulos
  public static String getCor(){
    return cor;
  }

  // define a cor de TODOS os retângulos
  public static void setCor(String cor){
    Retangulo.cor = cor;
  }

  // este método retorna a área do retângulo (em metros quadrados)
  public double getArea(){
    return (this.largura * this.altura);  
  }
  
  // este método retorna o perímetro do retângulo (em metros)
  public double getPerimetro(){
    return ((2 * this.largura) + (2 * this.altura));  
  }
}

Agora o teste no método main():

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

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());
    System.out.println("Área: " + a.getArea() + " metros quadrados");
    System.out.println("Perímetro: " + a.getPerimetro() + " metros");
    
    // vamos mostrar os resultados do segundo retângulo
    System.out.println("\nSegundo retângulo");
    System.out.println("Largura: " + b.getLargura());
    System.out.println("Altura: " + b.getAltura());
    System.out.println("Cor: " + Retangulo.getCor());
    System.out.println("Área: " + b.getArea() + " metros quadrados");
    System.out.println("Perímetro: " + b.getPerimetro() + " metros");
  }
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arquivos e Diretórios

Exercícios Resolvidos de Java - Listando arquivos e diretórios em um diretório informado pelo usuário

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

Escreva um programa Java que usa o método:

public String[] list()
da classe File para obter uma lista de arquivos e diretórios em um diretório informado pelo usuário. Antes de listar os arquivos seu programa deverá verificar se o caminho informado é um diretório válido.

Sua saída deverá ser parecida com:



Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

import java.io.File;
import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);  
    
    // vamos solicitar que o usuário informe o diretório a ser listado
    System.out.print("Informe o diretório a ser listado: ");
    String diretorioString = entrada.nextLine();
    
    // vamos verificar se o usuário informou um diretorio válido no sistema
    File diretorio = new File(diretorioString);
    if(!diretorio.isDirectory()){
      System.out.println("O caminho informado não é um diretório válido.");
    }
    else{ // é um diretório válido...vamos listar os arquivos
      String lista[] = diretorio.list();
      System.out.println("\nRelação de Arquivos e Diretórios:\n");
      for(String item : lista){
        System.out.println(item);  
      }
    }
    
    System.out.println("\n");
  }
}



Java ::: Pacote java.lang ::: String

Java para iniciantes - Como usar o método replace() da classe String para efetuar a substituição de caracteres em uma string

Quantidade de visualizações: 9578 vezes
Em algumas situações gostaríamos de substituir caracteres (não substrings) em uma string. Isso pode ser feito por meio do método replace() da classe String. Veja sua assinatura:

public String replace(char oldChar, char newChar)
O parâmetro oldChar representa o caractere que será substituído pelo valor no parâmetro newChar. Note que todas as ocorrências de oldChar serão substituídas por newChar. O resultado será um novo objeto String com as substituições aplicadas. Se não houver substituições a string atual é retornada.

Veja um trecho de código no qual substituímos todas as letras "a" por "e" e retornamos uma nova string com as substituições:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

public class Estudos {
  public static void main(String[] args) {
    String frase = "Programar em Java é muito bom";
    System.out.println("Frase original: " + frase);
    
    // vamos substituir todas as letras "a" por "e"
    frase = frase.replace('a', 'e');
    System.out.println("Depois da substituição: " + frase);
  }
}

Após a execução deste código teremos o seguinte resultado:

Frase original: Programar em Java é muito bom
Depois da substituição: Progremer em Jeve é muito bom



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções

Exercício Resolvido de Java - Como converter minutos em segundos em Java usando uma função

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

Escreva um programa Java para converter minutos em segundos. Você deverá criar uma função converter() que receberá, como argumento, um número inteiro representando os minutos e retornará, também como um inteiro, os segundos correspondentes. Os minutos deverão ser informados pelo usuário.

Sua saída deverá ser parecida com:

Informe os minutos: 15
A quantidade de segundos é: 900
Resposta/Solução:

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

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar os minutos
    System.out.print("Informe os minutos: ");
    int minutos = Integer.parseInt(entrada.nextLine());
  
    // agora vamos chamar a função converter() para converter
    // os minutos em segundos
    int segundos = converter(minutos);
  
    // e mostramos o resultado
    System.out.println("A quantidade de segundos é: " + segundos);
  }
  
  // função usada para converter minutos em segundos
  public static int converter(int minutos){
    int segundos = minutos * 60;
    return segundos; 
  }
}



Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

estados = {"SP": "SÃO PAULO", "GO": "GOIÁS",
  "RJ": "RIO DE JANEIRO", "MG": "MINAS GERAIS"}
print("GO" in estados)

A) "GO"

B) True

C) False

D) "SP", "GO", "RJ", "MG"

E) "GOIÁS"
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

O exercício do direito à propriedade

Ainda sobre as ações judiciais correlatas aos direitos de vizinhança, mais especificamente sobre as ações de demarcação e divisão de propriedades, retificação de registros imobiliários e relação entre esses procedimentos, assinale a alternativa correta no que toca aos seus objetivos, às hipóteses de cabimento e às demais peculiaridades:

A) A ação de demarcação serve para esclarecer os limites divisórios entre dois prédios de dois proprietários diferentes.

B) O procedimento de retificação de matrícula serve para individualizar em matrículas separadas um bem que é de propriedade conjunta (condomínio).

C) A ação de demarcação dispensa memorial descritivo e prova pericial no processo.

D) As ações demarcatória e divisória não podem ser cumuladas na mesma ação, pois têm objetos diferentes.

E) Os procedimentos ou as ações de marcação e divisão de propriedades só podem ser realizados judicialmente.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Aglomerantes

Definimos a cal metalúrgica como:

A) Produto da hidratação da cal viva.

B) Mistura de escórias de alto forno com cal hidráulica.

C) Mistura de cinzas vulcânicas com cal hidratada.

D) Sulfatos hidratados e anidros de cálcio.

E) Calcinação de rochas calcárias que contenham proporção de materiais argilosos.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Instalações prediais de combate a incêndio

O fogo é fundamental para o desenvolvimento da humanidade, mas é muito danoso às edificações, visto que pode causar prejuízos financeiros e sociais. Para tanto, as edificações necessitam de instalações prediais de combate a incêndio, que são projetadas para evitar prejuízos materiais e de vida decorrentes de um incêndio na edificação.

Sobre as instalações prediais de combate a incêndio, são feitas as seguintes proposições:

I - Têm sistemas concebidos para preservar a vida dos ocupantes das edificações e de áreas de risco, em caso de incêndio.

II - São projetadas com dispositivos que dificultam a propagação do fogo, diminuindo os prejuízos ao patrimônio e ao meio ambiente.

III - São concebidas para controlar e extinguir o incêndio, bem como favorecer a entrada do corpo de bombeiros na edificação.

Quais proposições estão corretas?

A) I, II e III.

B) I e II.

C) II e III.

D) I e III.

E) Apenas a III.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fundações

Fundações diretas: tipos, características, métodos construtivos e cálculo das tensões no solo

Um engenheiro verificou um problema de projeto na planta em uma edificação de grande porte: os pilares estavam muito próximos entre si. Desta forma, ele precisaria indicar ao mestre de obra um tipo de fundação mais apropriado, para não acarretar um problema estrutural devido à aproximidade dos pilares. A partir desta informação, assinale a alternativa correta:

A) Radier.

B) Sapata associada.

C) Bloco.

D) Sapata de divisa.

E) Sapata corrida.
Verificar Resposta Estudar Cards Todas as Questões

Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

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



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