3
respostas

Desafio da hora Prática - Java orientação a objetos

Eu postei tudo junto na classe Principal , pois eu vou escrevendo e comentando os códigos anteriores pra poder testar.

import java.util.Scanner;
public class Principal {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);

        ContaBancaria dadosDaConta = new ContaBancaria();
        System.out.print("Digite o número da conta: ");
        dadosDaConta.setNumeroConta(entrada.nextInt());
        System.out.print("Você é o titular da conta? Digite sim ou não: ");
        dadosDaConta.setTitular(entrada.next());
        System.out.println("Nome: "+dadosDaConta.getNome());
        dadosDaConta.exibeDadosDaConta();


        IdadePessoa dados = new IdadePessoa();
        System.out.print("Digite seu nome: ");
        dados.setNome(entrada.nextLine());
        System.out.print("Digite sua idade: ");
        dados.setIdade(entrada.nextInt());
        dados.exibeDados();
        dados.verificaIdade();


        Produto produtos = new Produto();
        System.out.print("Digite o nome do produto: ");
        produtos.setNome(entrada.nextLine());
        System.out.print("Digite o preço do produto: ");
        produtos.setPreco(entrada.nextDouble());
        produtos.exibirCalculo();
        System.out.println(String.format("Novo preço do %s é: R$%.2f",produtos.getNome(),produtos.calculaDesconto()));


        Aluno aluno = new Aluno();
        System.out.print("Digite o nome do Aluno: ");
        aluno.setNomeDoAluno(entrada.nextLine());
        aluno.adicionaNome();
        System.out.println(String.format("Média: %.1f",aluno.getNotas()));


        Livro livro1 = new Livro();
        Livro livro2 = new Livro();
        livro1.setTitulo("O Senhor dos Anéis.");
        livro1.setAutor("J.R.R.Tolkien.");
        livro1.exibirDetalhes();
        System.out.println("-------------------------");
        livro2.setTitulo("Fortaleza Digital.");
        livro2.setAutor("Dan Brown.");
        livro2.exibirDetalhes();

    }
}
3 respostas
public class ContaBancaria {
    private String nome = "Paulo C N Brito";
    private int numeroConta;
    private double saldo = 10000;
    private String titular;


    public void exibeDadosDaConta (){
        if (titular.equals("sim")) {
            System.out.println("Titular: " + titular);
            System.out.println(String.format("Saldo: R$%.2f", saldo));
            System.out.println(String.format("Número da conta: %d",numeroConta));
        }else {
            System.out.println("Titular: " + titular);
            System.out.println("Você não é o títular. Só o títular pode ver o saldo.");
            System.out.println("Saldo: R$*******");
            System.out.println(String.format("Número da conta: %d",numeroConta));
        }

    }

    public String getNome() {
        return nome;
    }

    public int getNumeroConta() {
        return numeroConta;
    }

    public void setNumeroConta(int numeroConta) {
        this.numeroConta = numeroConta;
    }

    public double getSaldo() {
        return saldo;
    }

    public String getTitular() {
        return titular;
    }

    public void setTitular(String titular) {
        this.titular = titular;
    }

}
public class IdadePessoa {
    private String nome;
    private int idade;


    public void exibeDados() {
        System.out.println("Seu Nome é: " + getNome());
        System.out.println("Sua idade é: " + getIdade());
    }

    public String getNome() {
        return nome;
    }

    public int getIdade() {
        return idade;
    }

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

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public void verificaIdade() {
        if (getIdade() >= 18) {
            System.out.println("Você é maior de idade.");
        }else {
            System.out.println("Você é menor de idade.");
        }
    }
}
public class Produto {
    private String nome;
    private double preco;

    public void exibirCalculo(){
        System.out.println(getNome());
        System.out.println(getPreco());
    }
    public double calculaDesconto(){
        double desconto = getPreco()/10;
        double precoComDesconto = getPreco() - desconto;
        return precoComDesconto;
    }

    public String getNome() {
        return nome;
    }

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

    public double getPreco() {
        return preco;
    }

    public void setPreco(double preco) {
        this.preco = preco;
    }
}
public class Aluno {
    private String nomeDoAluno;
    private double notas;
    private double somaNotas;

    public void adicionaNome(){
        System.out.println("Nome do aluno");
        System.out.println(getNomeDoAluno());
        setNotas(8.0);
        setNotas(7.6);
        setNotas(6.8);
    }

    public String getNomeDoAluno() {
        return nomeDoAluno;
    }

    public void setNomeDoAluno(String nomeDoAluno) {
        this.nomeDoAluno = nomeDoAluno;
    }

    public double getNotas() {
        return notas;
    }

    public void setNotas(double notas) {
        somaNotas += notas;
        double media = somaNotas/3;
        this.notas = media;
    }
    }
public class Livro {
    private String titulo;
    private String autor;

    void exibirDetalhes(){
        System.out.println("Título: "+ getTitulo());
        System.out.println("Autor: "+getAutor());
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String getTitulo) {
        this.titulo = getTitulo;
    }

    public String getAutor() {
        return autor;
    }

    public void setAutor(String autor) {
        this.autor = autor;
    }
}

Olá, Paulo. Tudo bem?

Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.

Você fez um ótimo exercício de organização ao manter tudo centralizado na classe Principal, o que ajuda bastante para testar rapidamente. Usar comentários também mostra que você está acompanhando a lógica com atenção.

Uma dica interessante para o futuro é usar o entrada.nextLine() logo após ler um número com nextInt() ou nextDouble(), para consumir a quebra de linha e evitar bugs na leitura de texto. Veja este exemplo:


Scanner entrada = new Scanner(System.in);
System.out.print("Digite um número: ");
int numero = entrada.nextInt();
entrada.nextLine(); // limpa o buffer
System.out.print("Digite seu nome: ");
String nome = entrada.nextLine();

Esse código garante que a leitura do nome funcione corretamente após um número.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Olá. Muito obrigado pelo seu comentário. Não sabia deste detalhe. Vou passar a fazer como você disse. Obrigado.