Static class? E outras dúvidas com Arquivos

Daew pessoal, possuo algumas dúvidas referente ao trecho do código abaixo:

public class EscrevendoArquivoBinario { static final String NOME_ARQUIVO = "AGENDA.DAT"; static class Pessoa //Cada reistro ocupara 42 bytes { String nome; // 30 bytes para o nome double altura; //8 bytes para o double int idade; // 4 bytes para int } public static RandomAccessFile abrirArquivo() { RandomAccessFile arquivo = null; try { arquivo = new RandomAccessFile(new File(NOME_ARQUIVO), "rw"); } catch (IOException e) { JOptionPane.showMessageDialog(null, " Nao foi possivel abrir o arquivo!"); } return arquivo; }

1º - static class Pessoa , pq isso?? seria classe interna?? mas qual a utilidade??

2º - Por se tratar de uma classe que irá gravar os dados fornecidos em arquivo, pq existe o seguinte comentário??
static class Pessoa //Cada registro ocupara 42 bytes
Onde sei que cada registro ocupará 42 bytes, sei q abaixo wxiste a qtdade de bytes ocupadas em cada atributo de Pessoa, mas não entendi pq.

O restante está ok, então se puderem me ajudar com essas duas dúvidas eu ahradeço.
Valew!

static class Pessoa //Cada reistro ocupara 42 bytes

esta criando uma referencia para um objeto Pessoa e que pertence a classe…
qualquer instancia que tiver ira referir ao mesmo objeto.

[]'s
Geraldo

hummmm, seria o mesmo então que eu criar uma outra classe Pessoa e nela declarar seus atributos e os métodos get’s e set’s???

A classe Pessoa é uma static inner class.

Ela é uma inner class, pois aparentemente a única utilidade de pessoa é definir a estrutura do registro que será gravado no arquivo binário, e não ser uma classe do negócio em si.

Ela é estática pois não depende de nenhuma informação de runtime da classe EscrevendoArquivoBinario.