Como usar classe Enumerada?

boa noite galera, primeira vez q eu tô programando com classe enumerada, e eu não sei cmo usar… vou postar o código e no final explico o problema…
quem puder ajudar, agradeço mt… braços

package Aplicacao;

import java.util.Scanner;

import Contas.Conta;
import Contas.ContaEspecial;
import Contas.Contapoupanca;

public class AplicacaoConta{
	
	private static Scanner novo;
	
	public Conta cadastrarContas (){
		
		Conta c = new Conta();
		
	    int numero;
	    String dataAbertura;
	    String nomeCompletoTitular;
	    double saldo;
	    
	    System.out.println(" Nome : ");
	    nomeCompletoTitular = novo.next();
	    System.out.println(" Numero : ");
	    numero = novo.nextInt();
	    System.out.println(" Data : ");
	    dataAbertura = novo.next();
	    System.out.println(" Saldo : ");
	    saldo = novo.nextDouble();
	    
	    c.setNomeCompletoTitular(nomeCompletoTitular);
	    c.setDataAbertura(dataAbertura);
	    c.setNumero(numero);
	    c.setSaldo(saldo);
	    
	    return c;
	    
	   
	}
	
	public ContaEspecial cadastrarContaEspecial(){
		
		ContaEspecial ce = new ContaEspecial();
		
		int numero;
	    String dataAbertura;
	    String nomeCompletoTitular;
	    double saldo;
	    
	    System.out.println(" Nome : ");
	    nomeCompletoTitular = novo.next();
	    System.out.println(" Numero : ");
	    numero = novo.nextInt();
	    System.out.println(" Data : ");
	    dataAbertura = novo.next();
	    System.out.println(" Saldo : ");
	    saldo = novo.nextDouble();
	    
	    ce.setNomeCompletoTitular(nomeCompletoTitular);
	    ce.setDataAbertura(dataAbertura);
	    ce.setNumero(numero);
	    ce.setSaldo(saldo);
	    
	    return ce;
	    
	    
	}
	
	public Contapoupanca cadastrarContaPoupanca (){
		
		Contapoupanca cp = new Contapoupanca();
		
		int numero;
	    String dataAbertura;
	    String diaRendimento;
	    String nomeCompletoTitular;
	    double saldo;
	    
	    System.out.println(" Nome : ");
	    nomeCompletoTitular = novo.next();
	    System.out.println(" Numero : ");
	    numero = novo.nextInt();
	    System.out.println(" Data : ");
	    dataAbertura = novo.next();
	    System.out.println(" Saldo : ");
	    saldo = novo.nextDouble();
	    System.out.println(" Dia do Rendimento : ");
	    diaRendimento = novo.next();
	    
	    cp.setNomeCompletoTitular(nomeCompletoTitular);
	    cp.setDataAbertura(dataAbertura);
	    cp.setNumero(numero);
	    cp.setSaldo(saldo);
	    cp.setDiaRendimento(diaRendimento);
	    	
	    return cp;
	    
		
	}

	public static void saudacao (Conta c){
		
		if (c instanceof Contapoupanca){
			System.out.println(" Bem Vindo a sua Conta Poupança Sr(a) " + c.getNomeCompletoTitular());
		}
		else
		if (c instanceof ContaEspecial){
			System.out.println(" Bem Vindo a sua Conta Especial Sr(a) " + c.getNomeCompletoTitular());		
		}
		
		else 
			System.out.println(" Bem Vindo a sua Conta Sr(a) " + c.getNomeCompletoTitular());		
	}
	
	public void menu (){
		
		Conta  c = new Conta ();
		Contapoupanca cp = new Contapoupanca();
		ContaEspecial ce = new ContaEspecial();

		novo = new Scanner(System.in);
        Integer escolha = 0;
        
        do { 
        	System.out.println("\n============================");
            System.out.println("  1 - Nova Conta Comum  ");
            System.out.println("  2 - Nova Conta Poupança");
            System.out.println("  3 - Nova Conta Especial");
            System.out.println("  4 - Rendimentos ");
            System.out.println("  5 - Sair          ");
            System.out.println("=============================");
            System.out.println("\n Sua Opcao "); 
            escolha = Integer.parseInt(novo.next());  
  
            switch (escolha) { 
            
            case 1:{
                c  = cadastrarContas();
                int op = 0;
                System.out.println("  1 - Sacar ");
                System.out.println("  2 - Depositar ");
                op = novo.nextInt();
                if (op ==1){
                	double valor;
                	saudacao(c);
                    System.out.println(" Valor que deseja sacar : ");
                    valor = novo.nextDouble();
                    c.Sacar(valor);                	
                }
                else
                if( op == 2){
                	double valor;
                	saudacao(c);
                    System.out.println(" Valor que deseja depositar : ");
                    valor = novo.nextDouble();
                    c.Depositar(valor);
                }
                
                break;
            }
            
            case 2:{
            	cp = cadastrarContaPoupanca();
            	int op = 0;
                System.out.println("  1 - Sacar ");
                System.out.println("  2 - Depositar ");
                System.out.println("  3 - Rendimento");
                op = novo.nextInt();
                
                if (op ==1){
                	double valor;
                	saudacao(cp);
                    System.out.println(" Valor que deseja sacar : ");
                    valor = novo.nextDouble();
                    cp.Sacar(valor);                	
                }
                else
                if( op == 2){
                	double valor;
                	saudacao(cp);
                    System.out.println(" Valor que deseja depositar : ");
                    valor = novo.nextDouble();
                    cp.Depositar(valor);
                }
                else {
                	double taxaRendimento;
                	saudacao(cp);
                    System.out.println(" Taxa Rendimento : ");
                    taxaRendimento = novo.nextDouble();
                    cp.calcRendimento(taxaRendimento);
                }
                
                break;
            }
            
            case 3:{
            	ce = cadastrarContaEspecial();
            	int op = 0;
                System.out.println("  1 - Sacar ");
                System.out.println("  2 - Depositar ");
                System.out.println("  3 - Limite ");
                op = novo.nextInt();
                
                if (op ==1){
                	double valor;
                	saudacao(ce);
                    System.out.println(" Valor que deseja sacar : ");
                    valor = novo.nextDouble();
                    ce.Sacar(valor);                	
                }
                else
                if( op == 2){
                	double valor;
                	saudacao(ce);
                    System.out.println(" Valor que deseja depositar : ");
                    valor = novo.nextDouble();
                    ce.Depositar(valor);
                }
                else {
                	double limite;
                	double valor;
                	String tipoTitular;
                	saudacao(ce);
                	System.out.println(" Tipo de Cliente : ");
                	tipoTitular = novo.next(); 
                	System.out.println(" Valor que deseja sacar : ");
                	valor = novo.nextDouble();
                    System.out.println(" Limite : ");
                    limite = novo.nextDouble();
                    ce.Sacar(valor, limite, tipoTitular);
                }
                
                break;
            }
                
            case 4:{
            	String tipoConta;
            	double taxaRendimento;
            	System.out.println(" Tipo de Conta : ");
            	tipoConta = novo.next();
            	System.out.println(" Taxa Rendimento : ");
            	taxaRendimento = novo.nextDouble();
            	cp.calcRendimento(tipoConta, taxaRendimento);            	
                break;  
            }
            
            case 5:{
            	System.out.println(" Saindo...");           	
                break;  
            	
            }
            
            
          }
            
        } while (escolha != 5);  

	}
	
		
	public static void main(String[] args) {
		
		AplicacaoConta apc = new AplicacaoConta();
	    apc.menu();
		System.exit(0);
	}

}
package Contas;

public class Conta {
	
	private int numero;
	private String dataAbertura;
	private String nomeCompletoTitular;
	protected double saldo;
	
    public enum tipoTitular { NORMAl(0), PREFERENCIAL(0.05), PRIME(0.10);
    
    private final double vantagens;
    
    
    tipoTitular ( double vantagens){
    	this.vantagens = vantagens;
    }


	public double getVantagens() {
		return vantagens;
	}
    };
	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}

	public String getDataAbertura() {
		return dataAbertura;
	}

	public void setDataAbertura(String dataAbertura) {
		this.dataAbertura = dataAbertura;
	}

	public String getNomeCompletoTitular() {
		return nomeCompletoTitular;
	}

	public void setNomeCompletoTitular(String nomeCompletoTitular) {
		this.nomeCompletoTitular = nomeCompletoTitular;
	}

	public double getSaldo() {
		return saldo;
	}

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

	public double Depositar (double valor){
		saldo += valor;
		System.out.println(" Deposito Realizado com Sucesso!!!");
		System.out.println(" Você possui um novo saldo de R$ " + saldo);
		return saldo;
	}
	
	public double Sacar (double valor){
		
		if (valor < saldo){
		saldo -= valor;
		System.out.println(" Saque Realizado com Sucesso!!!");
		System.out.println(" Você Sacou " + valor + " e possui um novo saldo de R$ " + saldo);
		}
		else{
			System.out.println(" Saldo Insuficiente!!!");
			System.out.println(" Você Tentou Sacar um Valor acima do seu saldo ");
		}
		
		return saldo;		
	}

}
NORMAL : Não tem vantagens adicionais.
PREFERENCIAL: Tem 5% a mais do limite na conta especial.
PRIME: Tem 10% a mais do limite na conta especial.

eu tenho mais duas classes de conta poupança e conta especial, o problema é que não sei como usar essa parte do código, pesquisei na net, mas não achei exemplos…
agradeço a todos, se precisar posto as outras classes…

Você pode usar o enumerado assim:

[code]
public class Conta {

//variavel de instancia do tipo TipoTitular
private TipoTitular tipoTitular;
//variavel de instancia do tipo Double
private Double valor;

//getters and setters

//cria o enum TipoTitular
public enum TipoTitular {

    NORMAl(0.0), PREFERENCIAL(0.05), PRIME(0.10);

    private Double valor;

    private TipoTitular(Double valor) {
        this.valor = valor;
    }

    public Double getValor() {
        return valor;
    }
}

}[/code]

Para acessar o enum, faça assim:

    public void teste() {

        Conta c = new Conta();
        // Pelo método TitularTitular 
        c.setTipoTitular(Conta.TipoTitular.NORMAl);
        //ou pelo método do Valor
        c.setValor(Conta.TipoTitular.NORMAL.getValor());

        System.out.println(c.getTipoTitular().getValor());
        System.out.println(c.getValor());
    }

Basta escolher qual das duas formas você vai usar.