Static

2 respostas
P

nao to percebendo bem o pk do estudante em vez de Estudante estudante = new Estudante();

public class EstuanteTest {
/*

  • ciração de um atributo estático pra ser usado pelos
  • métodos uma vez que eles são estáticos
  • Idealmente não vamos criar nenhum objecto da classe
  • EstudanteTest, portanto não precisamos nos preocupar
  • pelo facto da variável ser estática e ser partilhada
  • entre os métodos,
  • Note que estamos perante uma classe de teste
    */
    private static Estudante estudante;
    public static void main(String[] args) {
    int opcao;
    do {
    desenharMenu();
    System.out.print("\nOpção: ");
    opcao = InputReader.readInt();
    switch (opcao) {
    case 1:
    criarEstudanteDefault();
    break;
    case 2:
    criarEstudanteIntroduzindoDados();
    break;
    case 3:
    atribuirGrupoSanguineo();
    break;
    case 4:
    System.out.println(
    "\n\nQuantidade de estudantes: "
  • Estudante.
    obterQuantidadeDeEstudantes());
    InputReader.readString();
    break;
    case 5:
    System.out.println(
    “\nDados do Estuante Criado\n”);
    Ficha10 ? Classes e Objectos
    5
    Elaborado por dr. Penicela Pedro Vasco 7 de Maio de 2008
    System.out.println(estudante);
    InputReader.readString();
    break;
    }
    }
    while (opcao >= 1 && opcao <= 6);
    System.out.println(“Bye…”);
    }
    public static void desenharMenu() {
    String menu = “” +
    “********** Menu Principal ********************”
  • "\n 1. Criar Um estudante Default "
  • "\n 2. Criar Um estudante infomrando os dados "
  • "\n 3. Atribuir Grupo Sanguineo "
  • "\n 4. Visusalizar Qtd de Estudantes criados "
  • "\n 5. Imprimir o Estudante "
  • “\n 0. Sair”
  • ?\n*********************************************";
    System.out.println(menu);
    }
    public static int obterOpcaoDoUtilizador() {
    desenharMenu();
    int opcao = InputReader.readInt();
    return opcao;
    }
    //uso do construtor default
    public static void criarEstudanteDefault() {
    estudante = new Estudante();
    }
    //uso do construtor com parâmetros
    private static void criarEstudanteIntroduzindoDados() {
    System.out.print("Código: ");
    int codigo = InputReader.readInt();
    System.out.print("Nome: ");
    String nome = InputReader.readString();
    //ler sexo, e garantir que o sexo seja m ou

2 Respostas

pedruhenrik

http://guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

att,

Rafael_Mesquita_Mour

Repare que, quando você cria a classe EstudanteTest, a classe possui uma varíavel assim:

private static Estudante estudante;

Explicando cada parte dessa declaração:

private

Indica que a variável só pode ser acessada através de getters e setters, ou por um código dentro da classe a qual ela foi declarada.

static

Indica que a variável é uma variável de classe e não de instância. O que significa isso? Significa que todos os objetos que você instanciar usando:

EstudanteTest t = new EstudanteTest()

Utilizarão a mesma variável, pois essa variável estará armazenada dentro da classe e não dentro de cada objeto que você instanciar, ou seja, ela será compartilhada por todos os objetos do tipo EstudanteTest.

Então, dependendo da opção selecionada no método readInt() será criado um objeto do tipo Estudante(), que será atribuído a variável estudante, que é uma variável da classe EstudanteTest. E essa variável será compartilhada por todos os objetos EstudanteTest que você criar.

Espero ter ajudado, e por falar nisso:
http://guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor

;D

Criado 28 de agosto de 2011
Ultima resposta 28 de ago. de 2011
Respostas 2
Participantes 3