Erro na criação de um simples método[RESOLVIDO]

12 respostas
adriano_seven_byte

porque o eclipse acusa erro na criação deste método?

package teste.prova;

public class Teste02 {

	public static void main(String[] args) {
		
		String nome;
		int num;

		public void maiorNumero(){
	
		}

	}

}

12 Respostas

lina

Oi,

Porque você está criando ele dentro do main?!

Tchauzin!

adriano_seven_byte

lina:
Oi,

Porque você está criando ele dentro do main?!

Tchauzin!

Tem razão, vc está certíssima, mas me explica pq dá erro criando dentro do main? e fora não…

minibixo

Leia a apostila da FJ11 - http://www.caelum.com.br/apostilas/
Ela explica certinho como e porque certas das coisas basicas do java em geral!
(Fora que ela é bastante maneira no quesito OO).

Me ajudou bastante!

adriano_seven_byte

minibixo:
Leia a apostila da FJ11 - http://www.caelum.com.br/apostilas/
Ela explica certinho como e porque certas das coisas basicas do java em geral!
(Fora que ela é bastante maneira no quesito OO).

Me ajudou bastante!

VALEU AMIGOS NÉRDS…

E

Java é filho do C++, não do Pascal.

Em Pascal é possível escrever um método dentro de outro (e é por isso que os processadores da Intel até hoje têm uma instrução “ENTER” e outra “LEAVE” que serve exatamente para dar suporte a métodos que são escritos dentro de outros métodos.

http://css.csail.mit.edu/6.858/2011/readings/i386/ENTER.htm
http://css.csail.mit.edu/6.858/2010/readings/i386/LEAVE.htm

Escrever um método dentro do outro em Pascal é feito para poder usar variáveis locais do método externo dentro do método interno.

Mas em C++, Java, etc. isso não é possível. (Aham, em Java é possível escrever uma declaração de classe anônima (e por conseguinte um método) dentro de um outro método) mas isso não é feito desse jeito que você tentou fazer).

adriano_seven_byte

Tentei colocar static mas não deu certo.
Mas eu já vi declaração desta forma dentro do método main funcionando beleza...
Muito estranho...

package teste.prova;  
  
public class Teste02 { 

       static String nome;  
       static int num;   
  
    public static void main(String[] args) {  
          
 
        public static void maiorNumero(){                    // erro no método ???????????????
      
        }  
  
    }  
  
}
minibixo

Crie o metodo fora do main e coloque um ‘NOMEDOMETODO();’ dentro do main, vai funcionar …

lina

Oi,

A forma correta de fazer o que você quer é:

public class Teste02 {
	
	public Teste02() {
		
		maiorNumero();
	}
	
	private void maiorNumero() {
		
		System.out.println("O maior número é: ");
	}
	
	public static void main(String[] args) {
		new Teste02();
	}
}

Ou então, você pode optar por criar o método maiorNumero() estático para conseguir chama-lo direto do main.

public class Teste02 {
	
	private static void maiorNumero() {
		
		System.out.println("O maior número é: ");
	}
	
	public static void main(String[] args) {
		maiorNumero();
	}
}

Tchauzin!

minibixo

Ou você faz como a lina fez!

adriano_seven_byte
lina:
Oi,

A forma correta de fazer o que você quer é:

public class Teste02 {
	
	public Teste02() {
		
		maiorNumero();
	}
	
	private void maiorNumero() {
		
		System.out.println("O maior número é: ");
	}
	
	public static void main(String[] args) {
		new Teste02();
	}
}

Ou então, você pode optar por criar o método maiorNumero() estático para conseguir chama-lo direto do main.

public class Teste02 {
	
	private static void maiorNumero() {
		
		System.out.println("O maior número é: ");
	}
	
	public static void main(String[] args) {
		maiorNumero();
	}
}

Tchauzin!

Lina beijão, vc é a cara!!

deus certo.

O motivo de mim não ter feito assim antes é que o cabeção do meu professor faz da forma que postei o primeiro codigo, pensei que teria que usar get e set por causa do private. Inda bem que não.

Ele declara:

A classe
método main
variaveis
metodos...

o cara faz bruxaria só pode, quando eu vou tentar não sai, só sai na mão dele...

mas valeu o auxilio. Obrigado!

douglascst90

EDITADO: Otimo, entao edite o topico e coloque a tag [RESOLVIDO] =]

lina

Oi,

Apenas um detalhe. Encapsulamento server para proteger os atributos e métodos de uma classe. Existem 4 tipos de “proteção”: private, protected, public e default.

Se o seu atributo estiver PRIVADO e você precisar acessa-lo e modifica-lo de fora (de uma outra classe), utiliza-se os métodos set e get. Caso contrário, não é necessário. Isso quer dizer que: Evite criar SET e GET para tudo e todos os seus atributos, apenas para os que se fazem necessários.

Fica a dica.

Tchauzin!

Criado 27 de novembro de 2012
Ultima resposta 27 de nov. de 2012
Respostas 12
Participantes 5