Ajuda

podem me ajudar com esse exercicio?

1- Criar a classe Pessoa com as seguintes características:

● Atributos: idade e dia, mês e ano de nascimento, nome da pessoa
● métodos:
○ calculaIdade(), que recebe a data atual em dias, mês e anos e calcula e
armazena no atributo idade a idade atual da pessoa
○ informaIdade(), que retorna o valor da idade
○ informaNome(), que retorna o nome da pessoa
○ ajustaDataDeNascimento(), que recebe dia, mês e ano de nascimento como
parâmetros e preenche nos atributos correspondentes do objeto.
● Criar dois objetos da classe Pessoa, um representando Albert Einstein (nascido em
14/3/1879) e o outro representando Isaac Newton (nascido em 4/1/1643)
● Fazer uma classe principal que instancie os objetos, inicialize e mostre quais seriam
as idades de Einstein e Newton caso estivessem vivos.

eu acabei de receber ele, e eu nao estou em cs, so vou esta em cs amanha de manha para tentar fazer alguma coisa dele, so que eu ja to percebendo q nao vou conseguir fazer

que parte dele vc acha que não consegue fazer?

Seria tipo assim:

public class Pessoa {

int idade;
int dia;
int mes;
int ano;
int diaAtual;
int mesAtual;
int anoAtual;
String nome;

// Metodo que calcula a idade da pessoa
public void calcularIdade(int dia, int mes, int ano) {
    this.anoAtual = ano;
    this.idade = this.anoAtual - this.ano;
    
}

// Metodo que retorna a idade da pessoa
public int informarIdade(){
    
    return this.idade;
}

// Metodo que retorna o nome da pessoa
public String informaNome(){
    
    return nome;
}

// Define a data de nascimento
public void ajustaDataNasciment(int dia, int mes, int ano){
    this.dia = dia;
    this.mes = mes;
    this.ano = ano;
    
}

}

classe testadora:

public class ExercicioTest {

public static void main(String args[]){
    
    Pessoa isaac = new Pessoa();
    Pessoa einsten = new Pessoa();
            
    // Primeiro objeto a ser instanciado
    isaac.nome = "Isaac Newton";
    isaac.ajustaDataNasciment(14, 03, 1849);
    
    // Segundo objeto a ser instanciando
    einsten.nome = "Albert Einsten";
    einsten.ajustaDataNasciment(04, 01, 1643);
    
    // Passando a data atual para o metodo que ira calcular a idade
    isaac.calcularIdade(19, 12, 2017);
    einsten.calcularIdade(19, 12, 2017);
    
    System.out.println("Idade atual de " + isaac.informaNome() + " seria de " + isaac.informarIdade());
    System.out.println("Idade atual de " + einsten.informaNome() + " seria de " + einsten.informarIdade());
}

}

1 curtida

Depois de um bom tempo, me pego para realizar exatamente este exercício, estou resolvendo diversos exercícios para me aprimorar na linguagem Java.
Para esta solução, minha classe Main ficou bem Limpa, este código é bem amador, peço desculpas…

public class Teste {

    public static void main(String[] args) {

       // Pessoa pessoaTeste = new Pessoa();
        Newton n = new Newton();
        Einsten e = new Einsten();


        e.Meidentifique();
        System.out.println();
        n.Meidentifique();


    }
}

Já na minha Classe Pessoa, montei uma lógica de cálculo de idade que funcionou muito bem…

public class Pessoa {
    //Atributos
    int idade;
    int dia_nasci;
    int mes_nasci;
    int ano_nasci;
    String nome;


        //metodos
        public void calculaIdade(int dia, int mes, int ano) {

            if (mes < this.mes_nasci || mes - this.mes_nasci == 0 && dia < this.dia_nasci)
                this.idade = (ano - this.ano_nasci) - 1;

            else
             this.idade = (ano - this.ano_nasci);
    }

        //get para pegar a idade, utilizado mais abaixo
        public int getIdade(){
            return this.idade;
        }

    public void informaIdade(){
            getIdade();
        System.out.println("Minha idade seria: " + getIdade());

    }

    //retorno da String
    public String informaNome(){
        return ("Nome: " + nome);
    }

    public void ajustaDataDeNascimento( int dia, int mes, int ano ){

            this.dia_nasci = dia;
            this.mes_nasci = mes;
            this.ano_nasci = ano;

    }

}

Deixarei um exemplo de um dos Objetos, mas será necessário realizar a mesma coisa para ambos os objetos.

public class Einsten {

    public void Meidentifique (){


        Pessoa p = new Pessoa();

        p.ajustaDataDeNascimento(14,3,1879);
        p.nome = "Albert Einsten";
        p.calculaIdade(9,1,2024);
        p.informaIdade();
        System.out.println(p.informaNome());







    }

}

Porque as classes Newton e Einstein? Deverão ser apenas instancias de Pessoa.
Porque passar a data de hoje hardcoded? Desta forma só vai funcionar para hoje.
Deveria verificar a data atual e fazer os cálculos com base nessa data.

O teu main deveria ser algo ± assim:

Pessoa newton = new Pessoa("Isaac Newton", 4,1,1643);
Pessoa einstein = new Pessoa("Albert Einstein", 14,3,1879);

LocalDate now = LocalDate.now();
System.out.println("A idade de Newton seria " + newton.calculaIdade(now.getDayOfMonth(), now.getMonth(), now.getYear()));
System.out.println("A idade de Einstein seria " + einstein.calculaIdade(now.getDayOfMonth(), now.getMonth(), now.getYear()));
1 curtida