Static context e non-static variable

3 respostas
jayrmotta

3 Respostas

F

Cara pq vc ta usando classes internas?

public class Banco {   
    int cont;   
    class Conta {   
        int numero = cont++; // numero da conta   
        double limite, saldo; // dados da conta   
        boolean ativa;   
    }   
       
    class Cliente {   
        String cpf, rg,   
        nome;   
        Date dataCria; // data de criação da conta         
    }   
}

Éste é um dos erros que de cara encontrei
Cliente().nome = src.next()!!Usa elas se vc dominar o assunto se não nao aconselho
espero ter te ajudado amigao!! :wink:

F
import java.util.Scanner;   
import java.util.Date;   
public  class Banco {   
    int cont;   
   class Conta {   
        int numero = cont++; // numero da conta   
        double limite, saldo; // dados da conta   
        boolean ativa;   
    }   
       
    class Cliente {   
        String cpf, rg,   
        nome;   
        Date dataCria; // data de criação da conta         
    }   
       
       class Funcionario {   
        double  salario;   
        String nome, departamento, rg,   
        dataAdmissao, motivoDemissao; // data de admissão do funcionario, motivo de demissao de um funcionario   
        boolean controleFluxo, ativo; // controle de fluxo quando esta dentro ou fora da empresa e controle de ativo ou nao   
        boolean bonifica(int porcentagem) { // bonifica o funcionario com uma certa porcentagem ex: bonifica(10) que equivale a 10%   
           
        if (porcentagem > 0 && porcentagem <= 100) {   
            double salarioNovo = this.salario + ((this.salario / 100) * porcentagem);   
            return true;   
        }   
           
        else   
            {   
            System.out.print("Digite uma porcentagem entre entre 1 e 100.");   
            return false;   
        }   
    }   
       
    boolean demite(String motivo) {   
           
        if (!motivo.equals(null)) {   
            this.ativo = false;   
            this.motivoDemissao = motivo;   
            // ... processo de retirar da folha da pagamento!   
            System.out.println("Demissão de: "+ this.nome +" concluída!");   
            return true;   
        }   
           
        else   
            {   
            System.out.print("Especifique um motivo para a demissão de: "+ this.nome);   
            return false;             
        }   
    }   
}   
  
  
  
public static void main(String[] args){   
    Date data = new Date();   
    String opcao, opcao2;   
    Scanner src = new Scanner( System.in ); 
    Banco.Cliente interna=new Banco().new Cliente();
    Banco.Conta c=new Banco().new Conta();
    do {   
    System.out.println("Opções: contas, dados de clientes e funcionários");   
    opcao = src.next();   
    }   while (!opcao.equalsIgnoreCase("contas") || !opcao.equalsIgnoreCase("dados de clientes") || !opcao.equalsIgnoreCase("funcionarios") || !opcao.equalsIgnoreCase("funcionários"));   
    if (opcao.equals("contas")) {   
        do {   
            System.out.println("O que deseja fazer? [add/del/nada]");   
            opcao2 = src.next();   
        } while (!opcao.equalsIgnoreCase("add") || !opcao.equalsIgnoreCase("del") || !opcao.equalsIgnoreCase("nada"));   
        if (opcao2.equals("add")) {   
            System.out.println("Digite o nome do cliente:");   
            interna.nome = src.next();   
            System.out.println("Digite o cpf do cliente:");   
            interna.cpf = src.next();   
            System.out.println("Digite o rg do cliente:");   
            interna.rg = src.next();   
            interna.dataCria = data;   
            c.limite = 1000;   
            c.saldo = 0;                         
            System.out.println("Dados do cliente: \n Nome: "+ interna.nome);   
            System.out.println("Cpf: "+ interna.cpf +"\n Rg: "+interna.rg);   
            System.out.println("Conta criada em: "+ interna.dataCria + "\n Dados da conta:");   
            System.out.println("Número: "+ c.numero +"\n Limite"+ c.limite);   
            System.out.println("Saldo atual: "+ c.saldo+"\n Conta criada com sucesso!");   
        }   
    }   
}
}
Peguei teu código e coloquei na situacao de compilar mas atenção cara. tem alguns erro de O.O

e também  tinha 2 classes públicas no mesmo arquivo e isso não pode em Java

Banco foi  a classe que coloquei como principal.

olha o que tive de acrescentar

Banco.Cliente interna=new Banco().new Cliente();

Banco.Conta c=new Banco().new Conta();

pq vc colocou como internas era isso mesmo que queria fazer?
F

O metodo demitir estaria melhor na classe Banco,afinal é ele que tem a função de demitir alguém.
O funcionáro poderia ficar com uma variável que representasse o estado atual se faz parte da equipe ou não.Explicame como queres que teu programinha funcionasse para te ajudar melhor :)!

Criado 6 de abril de 2008
Ultima resposta 6 de abr. de 2008
Respostas 3
Participantes 2