Classe não public

5 respostas
dfsilva86

Pessoal,

Li no livro da Kathy que "Arquivos que não contém classes public podem ter nome que não seja o mesmo de nenhuma das classes do arquivo"

Fiz o seguinte exemplo para testar...

class Teste {

	public static void main(String[] args) {
	
	System.out.println("TESTANDO");
	}
}

Dei a esse arquivo o nome de Testando.java, compilei normal no console do DOS mas quando executo a classe dá erro.

O livro está errado ou preciso usar algum modificador?

Grande Abraço!

5 Respostas

Lavieri

Como vc vai executar a classe ??? c ela não é publica ???

tente criar classes q não saum publicas, e usar em outro arquivo Publico, pois vc só vai poder executar se a classe que contem o método main for publica… caso contrario a JVM não encontrara o método main, para rodar seu aplicativo ^^

Andre_Fonseca

oi

não, um arquivo Teste.java pode ter apenas uma classe publica public class Teste de mesmo nome, inclusive case sensitive, mas você pode ter outras classes não public

abs

LPJava

dar uma olhada ai no nome do .class que foi gerado esse que deve ser executado… qual eh o nome do .class?

acabei de testar o nome do seu .class deve ser o nome da sua classe vc deve digitar:

java Teste
class Camilo{

public static void main(String args[]){
System.out.println("classe camilo");
}
}

Para executar o arquivo acima tenho dar:

java Camilo

Eu salvei com o nome de Guj.java

dfsilva86

Entendi Camilo!

O arquivo pode ter o nome diferente, mas o que deve ser compilado é o .class com o nome que foi gerado(o nome da classe), realmente eu me confundi com essa passagem do livro!!!

Obrigado a todos!!!

Andre_Fonseca
Lavieri:
Como vc vai executar a classe ??? c ela não é publica ???

tente criar classes q não saum publicas, e usar em outro arquivo Publico, pois vc só vai poder executar se a classe que contem o método main for publica... caso contrario a JVM não encontrara o método main, para rodar seu aplicativo ^^

Será? Usando Eclipse e também linha de comando com java 1.5

class Publica {

	class Inner {
		String nome;
		int idade;

		String getNome() {
			return nome;
		}

		void setNome(String n) {
			nome=n;
		}
	}

	public static void main (String args[]) {
		System.out.println("ola");
	}
}

Isso compila

class Publica {

	class Inner {
		String nome;
		int idade;

		String getNome() {
			return nome;
		}

		void setNome(String n) {
			nome=n;
		}
	}

	static void main (String args[]) {
		System.out.println("ola");
	}
}

Isso mostra : Main method not public

Os modificadores permitidos para uma classe são public, final e abstract
Sendo que após compilar a classe temos dois arquivos: Publica.class e Publica$Inner.class

Criado 31 de janeiro de 2009
Ultima resposta 1 de fev. de 2009
Respostas 5
Participantes 4