Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos

POO - Programação Orientada a Objetos - Uma classe para representar uma pessoa, com os atributos privados de nome, data de nascimento e altura - Exercícios Resolvidos de Java

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

Crie uma classe para representar uma pessoa, com os atributos privados de nome, data de nascimento e altura. Crie os métodos públicos necessários para sets e gets e também um método para imprimir todos dados de uma pessoa. Crie um método para calcular a idade da pessoa.

A data de nascimento pode ser informada como uma String (no formato 05/10/1982, por exemplo) e, no cálculo da idade, considere apenas o ano da data de nascimento informada.

Sua saída deverá ser parecida com:



Resposta/Solução:

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

Código para a classe Pessoa.java:

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

package arquivodecodigos;

import java.util.Calendar;

public class Pessoa {
  private String nome;
  private String dataNascimento;
  private double altura;

  // método que imprime todos os dados da pessoa
  public void imprimirDados(){
    System.out.println("Nome: " + nome + "\nData de Nascimento: " +
      dataNascimento + "\nAltura: " + altura);
  }
  
  // método que calcula a idade da pessoa
  public void calcularIdade(){
    // vamos obter o ano da data de hoje
    Calendar calendario = Calendar.getInstance();
    int anoDataAtual = calendario.get(Calendar.YEAR);
    
    // agora vamos obter o ano de nascimento da pessoa
    String partesDataNascimento[] = dataNascimento.split("/");
    int anoNascimento = Integer.parseInt(partesDataNascimento[2]);
    
    // agora mostramos a idade da pessoa
    int anos = anoDataAtual - anoNascimento;
    System.out.println("A pessoa tem " + anos + " anos.");
  }
  
  public String getNome() {
    return nome;
  }

  public void setNome(String nome) {
    this.nome = nome;
  }

  public String getDataNascimento() {
    return dataNascimento;
  }

  public void setDataNascimento(String dataNascimento) {
    this.dataNascimento = dataNascimento;
  }

  public double getAltura() {
    return altura;
  }

  public void setAltura(double altura) {
    this.altura = altura;
  }
}

Código para a classe Principal.java:

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

package arquivodecodigos;

public class Principal {
  public static void main(String[] args) {
    // vamos criar uma nova pessoa
    Pessoa p = new Pessoa();
    p.setNome("Amanda Teixeira");
    p.setDataNascimento("12/05/1982");
    p.setAltura(1.64);
    
    // vamos mostrar os dados da pessoa
    p.imprimirDados();
    
    // vamos mostrar a idade da pessoa
    p.calcularIdade();
  }
}


Link para compartilhar na Internet ou com seus amigos:

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

Java para iniciantes - Como usar o tipo de dados short da linguagem Java

Quantidade de visualizações: 11908 vezes
O tipo de dados short pode ser usado quando queremos armazenar valores inteiros na faixa -32,768 à 32,767. Veja um exemplo:

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

public class Estudos{
  static short valor = 30000; 
  
  public static void main(String args[]){
    System.out.println("O valor da variável é: "
      + valor);
    System.exit(0);
  }
}

Porém, é preciso estar atento a um detalhe muito importante (testado na versão 6 do SDK). Veja o trecho de código seguinte:

----------------------------------------------------------------------
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[]){
    short a = 32;
    short b = 19;
    short soma = a + b;    

    System.out.println("O resultado é: " + soma);
    System.exit(0);
  }
}

À primeira vista este código está correto, visto que a soma das variáveis a e b não ultrapassam a faixa do tipo short. Porém, ao tentarmos compilar, temos a seguinte mensagem de erro:

Estudos.java:5: possible loss of precision
found   : int
required: short
  short soma = a + b;
               ^
1 error
Isso acontece porque o tipo de dados resultante da aplicação do operador de adição (e demais operadores binários) a dois números, é no mínimo int. Podemos, é claro, fazer uma coerção de dados (cast). Veja:

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

short a = 32;
short b = 19;
short soma = (short)(a + b);

O tipo de dados short pode ser convertido (sem a necessidade de cast) para os seguintes tipos:

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

short -> int -> long -> float -> double

Se precisarmos converter o tipo short para os tipos char e byte, teremos que lançar mão de uma coerção (cast). Veja:

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

short a = 32;
short b = 19;
byte soma = (byte)(a + b);



Java ::: Dicas & Truques ::: Data e Hora

Como validar uma data em Java usando a classe GregorianCalendar

Quantidade de visualizações: 13056 vezes
Esta dica mostra a você como validar uma data em Java usando a classe GregorianCalendar. Veja que estamos usando o método set() para atribuir valores aos campos ano, mês e dia. Contudo, o valor para o dia está incorreto. Desta forma, ao chamarmos o método getTime() uma exceção do tipo IllegalArgumentException será lançada. Veja o código:

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

import java.util.*;

public class Estudos{ 
  public static void main(String args[]){ 
    try{
      GregorianCalendar data = new GregorianCalendar();
      data.setLenient(false);
      data.set(GregorianCalendar.YEAR, 2008); // ano
      data.set(GregorianCalendar.MONTH, 11); // mês
      // dia inválido
      data.set(GregorianCalendar.DATE, 32);
      
      // a validação da data ocorre aqui
      Date temp = data.getTime();
    }
    catch(Exception e){
      System.out.println("Data inválida.");
      e.printStackTrace();
    }
  } 
}

Ao executarmos este código teremos o seguinte resultado:

Data inválida.
java.lang.IllegalArgumentException: DAY_OF_MONTH
at java.util.GregorianCalendar.computeTime(Unknown 
Source)
at java.util.Calendar.updateTime(Unknown Source)
at java.util.Calendar.getTimeInMillis(Unknown Source)
at java.util.Calendar.getTime(Unknown Source)
at Estudos.main(Estudos.java:14)



Java ::: Dicas & Truques ::: Strings e Caracteres

Manipulação de texto em Java - Como contar as ocorrências de um caractere em uma string

Quantidade de visualizações: 12 vezes
Nesta dica mostrarei como podemos combinar um laço for e o método charAt() da classe String para contar as ocorrências de um caractere (uma letra) em uma palavra, frase ou texto.

Veja o código completo para o exemplo:

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

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    String frase = "Programar em Java é muito bom";
    System.out.println("Frase: " + frase); 
    
    int cont = 0;
    char letra = 'a'; // ocorrências da letra "a"
     
    for(int i = 0; i < frase.length(); i++){
      if(frase.charAt(i) == letra){
        cont++; 
      }
    }
     
    System.out.println("A frase contem " + 
       cont + " ocorrencias da letra \"" + letra + "\"");
     
    System.exit(0);
  }
}

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

Frase: Programar em Java é muito bom
A frase contém 4 ocorrências da letra "a"


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: 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á 26 usuários muito felizes estudando em nosso site.