Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

java.lang exercicio 10

package br.com.caelum.fj11.modelo;
import javax.management.RuntimeErrorException;

import br.com.caelum.fj11.excecao.ValorInvalidoException;

public abstract class Conta {                                                                                                                           
//  private double saldo;
    protected double saldo;
    private int numero;
    private String nome;

    public double getSaldo() {
        return this.saldo;
    }

    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }
    public String toString() {    
        return "esse objeto é uma conta com saldo R$" + this.saldo;
    }   

    public boolean equals(Object obj) {
        Conta outraConta = (Conta) obj;
        return this.numero == outraConta.numero &&
            this.nome.equals(outraConta.nome);
    }

    public int getNumero() {
        return this.numero;
    }
    public int setNumero(int numero) {
        return this.numero;
    }

    public String getNome() {
        return this.nome;
    }
    public String setNome(int nome) {
        return this.nome;
    }


    /**
     * realiza um saque na conta dado o valor passado
     * @param valor_saque valor a ser sacado
     * @return
     * @throws Exception Excption caso saldo seja insuficiente
     */
    public boolean saca(double valor_saque) throws Exception {
        if (this.saldo < valor_saque) {
            //return false;
            throw new SaldoInsuficienteException(saldo);
        }
        else {
            this.saldo = this.saldo - valor_saque;
            return true;
        }
    }

// public void deposita(double valor_dep) {//use este formato quando a classe filha de RuntimeException
     public void deposita(double valor_dep) throws ValorInvalidoException  {//use este formato quando a classe filha de Exception       
//     if (valor_dep > 0) {// neste formato utiliza a exeption do java  
//      this.saldo += valor_dep;
//     }
//     else  {
//         throw new IllegalArgumentException("Você tentou depositar" + " um valor negativo");
//     }
       if (valor_dep > 0) {// neste formato utiliza a exeption pelo programador
          this.saldo += valor_dep;
         }
         else  {
             throw new ValorInvalidoException(valor_dep);
         }       
    }      

     /**
         * atualiza nome e numero de conta
         * 
         */
        public void idConta(int numero, String nome) {
            this.numero = numero;
            this.nome   = nome;

        }

   //public void atualiza(double taxa) {                                                                                                   
   //     this.saldo += (this.saldo * taxa);                                                                                                       
   // };       
    abstract public void atualiza(double taxa);

} 
---
package br.com.caelum.fj11.modelo;

public class ContaCorrente extends Conta implements Tributavel {

    public ContaCorrente(int numero, String nome) {
        // TODO Auto-generated constructor stub
        return;
    }

    public void atualiza(double taxa) {
             this.saldo += this.saldo * taxa * 2;
      }

    @Override
    public double calculaTributos() {
        return this.getSaldo() * 0.01;
    }
}
----
package br.com.caelum.fj11.programa;

import br.com.caelum.fj11.modelo.ContaCorrente;

public class TestaComparacaoConta {

    public static void main(String[] args) {

      ContaCorrente cc = new ContaCorrente(6, "Leonardo");
      ContaCorrente cc2 = new ContaCorrente(7, "Leonardo");

        //System.out.println(" conta 1 " + cc.getNome() + " " + cc.getNumero());
        //System.out.println(" conta 2 " + cc2.getNome() + " " + cc2.getNumero());

        if (cc == cc2)
            System.out.println("objetos são iguais");
        else 
            System.out.println("objeto são diferentes");

        if (cc.equals(cc2))
            System.out.println("objeto conta são iguas");
        else 
            System.out.println("objeto conta são diferentes");

    }
}

apresentou erro na execução da classe TestaComparaConta objeto são diferentes Exception in thread "main" java.lang.NullPointerException at br.com.caelum.fj11.modelo.Conta.equals(Conta.java:26) at br.com.caelum.fj11.programa.TestaComparacaoConta.main(TestaComparacaoConta.java:20)

1 resposta
solução!

O atributo nome está null, por isso deu NullPointerException quando ele chamou o método equals da String nome