Ajuda com Exercício sobre Classe e Encapsulamento

Prezados,

Boa tarde.
Estou precisando de uma ajuda em um exercício da faculdade.
Estou quebrando a cabeça pra tentar entender e fazer, mas admito que está difícil de entender.
Segue o enunciado:
[color=red]Essa atividade consiste em criar uma Super-Classe, uma Sub-Classe além de uma Aplicação para testar a utilização dessas classes com a inserção de dados.
Não será usado banco de dados.
Criar uma classe Conta em um arquivo Conta.java com os atributos descritos mais abaixo, além de métodos setters e getters se necessário.
Em outra classe, por herança, crie uma classe ContaCorrente.java que herdará os atributos e métodos da classe Conta e adicionar atributos exclusivos a essa nova classe, também descritos mais abaixo, bem como novos métodos setters e getters se necessário.
Faça uma aplicação com o nome de TestaContaCorrente.java que permita a digitação de todos dos dados da classe ContaCorrente usando a classe Scanner ou JOptionPane.

Classe: Conta.java
Atributos/Tipo/Encapsulamento

numeroconta Inteiro Classe, Subclasse, Pacote
numcliente Inteiro Classe e Pacote
nome String Classe e Pacote
saldo Real(double) somente na Classe

Classe: CorrenteConta.java
Atributos/Tipo/Encapsulamento

limite Real(double) somente na classe
gerente Inteiro Classe, Pacote
dataabertura Inteiro Classe, Subclasse e Pacote
[/color]

Muito bem, o que eu já fiz pelo que entendi:

Conta.java

[code]import java.util.Scanner;

public class Conta {
public static void main(String[] args){
}
private String nome;
private int numeroconta, numcliente;
private double saldo;
Scanner entrada = new Scanner(System.in);

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

} [/code]
Estou usando o JCreator e até agora não deu erro. Então fui para o segundo passo do exercício o foi aí que me enrolei.

ContaCorrente.java

[code]public class ContaCorrente extends Conta{

private int gerente, dataabertura;
private double limite;

public ContaCorrente (String nome, int numeroconta, int numcliente, double saldo, int gerente, int dataabertura, double limite){
	this.gerente=gerente;
	this.dataabertura=dataabertura;
	this.limite=limite;
}

}[/code]
Aqui aparece uma mensagem de erro:
“error: constructor Conta in class Conta cannot be applied to given types;
public ContaCorrente (String nome, int numeroconta, int numcliente, double saldo, int gerente, int dataabertura, double limite){
^
required: String,int,int,double
found: no arguments
reason: actual and formal argument lists differ in length”

O que posso estar fazendo de errado?

Desde já agradeço a ajuda. Estou “engatinhando” no Java, por isso a dificuldade de entender.

Oi zaratt.

Primeiro, remova isso da sua classe Conta:

public static void main(String[] args){ }

Isso não faz sentido algum ali.
Sobre o seu erro, o construtor da classe Pai foi definido exclusivamente como tendo 4 parâmetros, enquanto a classe filha ContaCorrente tem bem mais que isso.

Então, ou tu cria os setters que precisa a mais na ContaCorrente ou simplesmente cria dois construtores.
De qualquer forma, tu precisa obrigatoriamente de um construtor idêntico ao da classe Pai.

Abraços.

nel

Obrigado pela ajuda desde já.
Retirei o que você informou e dá a mensagem de erro:
Erro: O método principal não foi encontrado na classe Conta; defina o método principal como:
public static void main(String[] args)

[quote=zaratt]nel

Obrigado pela ajuda desde já.
Retirei o que você informou e dá a mensagem de erro:
Erro: O método principal não foi encontrado na classe Conta; defina o método principal como:
public static void main(String[] args)[/quote]

É que você deve estar tentando executar a classe e para que isso ocorra ele exige o main no código.
Mas veja o que o enunciado diz:

Cria essa classe “TestaContaCorrente” e lá sim faça o que precisa para executar. Inicialmente, coloque valores fixos mesmos, apenas para testar a lógico e o seu código, posteriormente você altera como deve ser.

Segue abaixo um exemplo pra você, mas precisa melhorar, e como é um trabalho da faculdade você precisa fazer sozinho pra aprender mesmo, mas qualquer dúvida posta ai.

public class Conta {
	public static void main(String[] args){
	}
    private String nome;
    private int numeroconta, numcliente;
    private double saldo;
    
    public Conta(String nome, int numeroconta, int numcliente, double saldo){
        this.nome=nome;
        this.numeroconta=numeroconta;
        this.numcliente=numcliente;
        this.saldo=saldo;
        
    }
} 
public class ContaCorrente extends Conta{

    private int gerente, dataabertura;
    private double limite;
 
    public ContaCorrente (String nome, int numeroconta, int numcliente, double saldo, int gerente, int dataabertura, double limite){
    	super(nome, numeroconta, numcliente, saldo);// passa primeiro no contrutor da super classe
    	this.gerente=gerente;
    	this.dataabertura=dataabertura;
    	this.limite=limite;
    }
   
}
public class TestaContaCorrente {

	public static void main(String[] args) {
		
	    Scanner entrada = new Scanner(System.in);
	    
	    System.out.println("Entre com o Nome: ");
	    String nome = entrada.next();
	    
	    System.out.println("Entre com o Número do Cliente: ");
	    int numcliente = entrada.nextInt();
	    	    
	    System.out.println("Entre com o Número da Conta: ");
	    int numeroconta = entrada.nextInt();
	    
	    System.out.println("Entre com o Saldo da conta: ");
	    double saldo = entrada.nextDouble();
	    
	    System.out.println("Entre com o Número do Gerente: ");
	    int gerente = entrada.nextInt();
	    
	    System.out.println("Entre com o dia abertura da conta: ");
	    int dataabertura = entrada.nextInt();
	    
	    System.out.println("Entre com o Limite da conta: ");
	    double limite = entrada.nextDouble();
	    
	    
	    
	    ContaCorrente contaCorrente = new ContaCorrente(nome, numeroconta, numcliente, saldo, gerente, dataabertura, limite);

		
	}
	
}

Espero ter ajudado.

Murilo

Muito obrigado.
Eu comecei agora a mexer com Java e estou fazendo EAD. Mas notei que essa linguagem é um pouco mais complexa pra mim, então na semana que vem eu vou começar um curso para melhorar mais.
No exercício da semana passada, eu fiz tranquilo o exercício, mas esse pra mim foi um pouco mais complicado e o material EAD não ajuda muito, por isso decidi fazer um curso.

Mais uma vez obrigado mesmo…estou olhando os códigos e comparando no que eu errei.