Class dentro de class

Boas pessoal tou a fazer uma class com simplificada de IO com as coisa mas basicas para usar mais directamente :smiley: mas tou aqui com 1 prob :S
É o seguinte…

Tenho uma class File dentro dela uma class Read, a partir de uma class Teste crio um novo objecto File fazendo File f = new File(); mas como faço para cria um objecto Read ?? estando ele dentro da class File apenas pode ser criado dentro da class file ?? ou existe uma forma o fazer estando ele lá dentro ?

:oops:

Depende:

/**
 * Evite usar nomes que batam com nomes de classes comuns do Java,
 * como File ou String. Você pode ter problemas muito sérios e
 * difíceis de consertar. Já que você fala a língua portuguesa,
 * use a palavra portuguesa (Ficheiro, em Portugal, ou Arquivo, no Brasil).
 */
public class Ficheiro {
    static class Leitura {
    }
    class Escrita {
    }
}

class Teste {
    public static void main(String[] args) {
        /** Você pode criar uma instância de uma classe interna,
         * mas ela deve ser "static", o que nem sempre é o que você quer */
        Ficheiro.Leitura fl = new Ficheiro.Leitura();
        // Se removermos comentário da próxima linha, obteremos um erro
        // "not an enclosing class"
//      Ficheiro.Escrita fe = new Ficheiro.Escrita();
    }
}

De modo geral, evite usar classes internas, a menos que estritamente necessário.

Mas há algum problea em usar as class internas ??

Problema não há, mas não é muito usual.

Se você olhar as APIs do Java, vai ver que elas são muito pouco usadas (por exemplo, a interface Map.Entry no pacote java.util.)

Eu acho em particular que é melhor usar um “subpacote” (por exemplo, se seu programa está em pt.sapo.aplicativo.* , as classes de IO poderiam ficar em pt.sapo.aplicativo.io.* )

Sim eu tambem ja tinha pensado em algo assim tipo uma class ficherio e depois outras duas read e write, mas depois axo ke perdia uma pouco aquilo que queria fazer que era ter acessoa a tudo de uma só class.