Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Criação de métodos

Eu não criei alguns métodos com CTRL + espaço e pode ter ficado diferente, porque eu não coloquei os parâmetros, Tá aparecendo um erro no método atualiza, como deveria estar na classe conta?

Conta

public class Conta {

    private double saldo;
    private String nome;
    private int agencia;

    public Conta(String nome, int agencia, double saldo) {
        super();
        this.saldo = saldo;
        this.nome = nome;
        this.agencia = agencia;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public int getAgencia() {
        return agencia;
    }
    public void setAgencia(int agencia) {
        this.agencia = agencia;
    }
    public double getSaldo() {
        return saldo;
    }
    public void getImprime() {
        System.out.println(nome);
        System.out.println(agencia);
    }

    public void atualiza(double taxa) {
       atualiza(taxa * 2);
    }

    public void saca(){

    }

    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }

}

ContaCorrente

public class ContaCorrente {
    public void atualiza(double taxa) {
        super.atualiza(taxa * 2);
    }
}
5 respostas

Olá Gisele !

A gente usa a palavra super quando a classe extends de outra no caso do código abaixo a classe ContaCorrente não herda de ninguém.

public class ContaCorrente {
    public void atualiza(double taxa) {
        super.atualiza(taxa * 2);
    }
}

Talvez assim funcionasse:

public class ContaCorrente extends Conta {
    public void atualiza(double taxa) {
        super.atualiza(taxa * 2);
    }
}

Outra coisa que achei estranha foi o método atualiza ele chama ele mesmo?

 public void atualiza(double taxa) {
       atualiza(taxa * 2);
    }

Não deveria ser assim:

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

Então, eu estou tentando seguir o passo a passo dos exercícios, mas parece que ficou faltando alguma coisa. Os exemplos para baixar são diferentes. Mudei como você falou e continua aparecendo um x vermelho na ContaCorrente.

Esse método foi gerado com o atalho do Eclipse.

Problema nesse exercício, se eu uso ctrl + espaço ele autocompleta o public, mas como autocompleta o restante desse jeito? Eu não consegui e escrevi na mão, agora estou tendo problemas:

Dentro do projeto conta, crie as classes Conta, ContaCorrente e ContaPoupanca no nosso projeto do Eclipse. Na classe Conta, crie os métodos atualiza e saca como no capítulo anterior. Desta vez, tente abusar do control + espaço e control + 1. Por exemplo:

publ v atualiza(do taxa){

Repare que até mesmo nomes de variáveis, ele cria para você!

Muitas vezes, ao criarmos um objeto, nem mesmo declaramos a variável:

new ContaCorrente(); Vá nessa linha e dê control + 1. Ele vai sugerir e declarará a variável pra você. Compartilhe o código da classe ContaCorrente e da classe ContaPoupanca.

Mensagens de erro:

Conta Corrente:

Implicit super constructor Conta() is undefined for default constructor. Must define an explicit constructor

Cannot directly invoke the abstract method atualiza(double) for the type Conta

Sugeri para modificar a assinatura, é esse o problema?

public ContaCorrente(String nome, int agencia, double saldo) {
        super(nome, agencia, saldo);
        // TODO Auto-generated constructor stub
    }

Estou esquecendo de alguma coisa, cria a classe Conta, ContaCorrente e ContaPoupança herdam de Conta, o que está errado na criação das classes filhas?

Sim porque sua classe conta não tinha o construtor adequado. Agora vai funcionar.

solução!

Funcionou, mas nem sempre aparece o autocompletar, não estava aparecendo para criar o método, eu arrumei a assinatura e apareceu para arrumar em ContaPoupança, então é só colocar o @Override?

Conta

package fj11;

public abstract class Conta {

    private double saldo;
    private String nome;
    private int agencia;

    public Conta(String nome, int agencia, double saldo) {
        super();
        this.saldo = saldo;
        this.nome = nome;
        this.agencia = agencia;
    }

    public String getNome() {
        return nome;
    }

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

    public int getAgencia() {
        return agencia;
    }

    public void setAgencia(int agencia) {
        this.agencia = agencia;
    }

    public double getSaldo() {
        return saldo;
    }

    public void getImprime() {
        System.out.println(nome);
        System.out.println(agencia);
    }

    public abstract void atualiza(double taxaSelic);

    public void saca() {

    }

    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }

ContaCorrente

package fj11;

public class ContaCorrente extends Conta {

    public ContaCorrente(String nome, int agencia, double saldo) {
        super(nome, agencia, saldo);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void atualiza(double taxaSelic) {
        // TODO Auto-generated method stub

    }
}

Seria melhor se os exemplos fossem igual a estrutura dos vídeos, vi que a estrutura dos arquivos para downloads estão mais divididas, mas se a gente se perde, fica difícil de corrigir.