Pessoal eu to com a seguinte duvida! É possivel fazer uma classe sem o contrutor explicito…Porque ocorre o seguinte. Eu quero Criar uma classe Chamada ARQUIVO que trabalhe com LER,ESCREVER,APAGAR,ALTERAR e outras funções… Ai eu criei um método que cria um arq. só que minha duvida seria essa: O arq não deveria ser criado no construtor da classe?
A minha classe é essa por enquanto:
import java.io.*;
public class ARQUIVO {
public ARQUIVO(){}
public void Cria_Arquivo()
{
File file = new File("C:\CIDADES.txt");
}
}
//Se seu construtor não deve ser chamado, torne-o privado.
private ARQUIVO(File qualquercoisa) {
//Um construtor privado.
this.file = file;
}
//Use um método estático para criar o seu arquivo.
public static Arquivo criaArquivo() {
File file = new File("C:\CIDADES.txt");
//Resto do seu método aqui...
return new Arquivo(file);
}
}[/code]
As vantagens disso são as seguintes:
O método criaArquivo tem um nome mais significativo do que um construtor. Por exemplo, você poderia criar o método criaArquivo, que te retorna um arquivo novo somente se um arquivo não existir, e um erro caso contrário. E você poderia criar um método leArquivo, para o caso de abrir arquivos que já existem.
Você não é obrigado a retornar um objeto do tipo Arquivo, pode também retornar filhos dele, ou mesmo objetos proxy.
Esse recurso é tão interessante, que uma das propostas do Java 7 é tornar ele oficial, e eliminar de vez o uso de construtores.