Arquivo + Classe + Contrutor

1 resposta
G

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");
	  
	
	}
}

Alguma sugestão para a mudança…
grato.

1 Resposta

ViniGodoy

Pode sim. Muitas classes são assim. E existem até vantagens e fazer isso.

Mas a assinatura seria a seguinte:

import java.io.*;
 
 public class ARQUIVO {
 	File file;

        //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);
 	}
 }

As vantagens disso são as seguintes:
1. 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.

2. 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.

Criado 22 de maio de 2007
Ultima resposta 22 de mai. de 2007
Respostas 1
Participantes 2