Porque voltou como valor null!

14 respostas
K
galera esperta tudo bem com vcs? bem estou começando agora em java,como estou aprendendo fiz um programa básico que faz retorna o valor do nome e idade do fernando.

private static String nome1;

private static  int idade;

public static void meuMeutodo(){
nome1 ="fernando";
	idade=32;
	
	
}

public static void main(String[] args) {

System.out.println(nome1);
	System.out.println(idade);
	
	
}

e um seguinte o valor esta retornando como null e não o nome e a idade do fernando.
o que fiz de errado?
abraço a todos.

14 Respostas

Victor_Neves

digite as variaveis

[b] nome1 ="fernando";
idade=32;[/b]

dentro do corpo main , assim

public static void main(String[] args) {

nome1 ="fernando";
	idade=32;

System.out.println(nome1);
System.out.println(idade);


}

se voce atribuir valores às variaveis antes do main, ele nao (digamos) “reconhece”… sacou?
nao desse jeito qeu voce fez…
ou voce pode fazer assim

private static String nome1="fernando";
private static int idade=32;

assim ele reconhece.

rodrigo.bossini
[quote=kerbage]<blockquote>galera esperta tudo bem com vcs? bem estou começando agora em java,como estou aprendendo fiz um programa básico que faz retorna o valor do nome e idade do fernando.

private static String nome1;

private static int idade;

public static void meuMeutodo(){

nome1 =fernando;

idade=32;

}
public static void main(String[] args) {

System.out.println(nome1);

System.out.println(idade);

}
e um seguinte o valor esta retornando como null e não o nome e a idade do fernando.
o que fiz de errado?
abraço a todos.

Só faltou você fazer uma chamada do seu método que altera os valores.

No main, antes de imprimir, chame o método que altera as variáveis. :wink:

E

Falem se eu estiver errado pois tbm to começando, vc criou 2 metodos " main" e " meuMeutodo" declarou as variaveis na classe onde os dois metodos estão, até ai tudo bem! mas você atribuiu valores a essas variaveis dentro do metodo " meuMeutodo" que nunca foi executado! então na verdade essas variaveis realmente estão nulas! Duas soluções pra você, atribuir os valores a essas variavéis fora do corpo de qualquer metodo ou criar uma instância da classe que não citou o nome (vamos supor que seja teste), fikaria algo do tipo :

public static void main(String[] args) {

teste t = new teste();

t.meuMeutodo();

System.out.println(nome1);

System.out.println(idade);

}

bom espero ter ajudado!

diegosantiviago

Muito bem Eduardo! Mas neste caso você não precisa instanciar um objeto, porquê também está num contexto estático.

kerbage:

Um programa java sempre começa a partir do método static main. Então coisas que estão fora do main, devem ser chamados!

jingle

Tente usar as tag code.

mas basta fazer a chamada do seu método que tudo vai se resolver:

private static String nome1;
private static int idade;
public static void meuMeutodo(){

nome1 ="fernando";
idade=32;


}



public static void main(String[] args) {

meuMeutodo();
System.out.println(nome1);
System.out.println(idade);


}
K

valeu mesmo galera! quer dizer que tenho que chama o metodo dentro do main!
outra coisa o meumetodo é para esquecer, não precisava dele?

jingle

Não precisava, se voce só usa as informações ali no main pode fazer assim:

public static void main(String[] args) {
String nome1 ="fernando";
String idade=32;

System.out.println(nome1);
System.out.println(idade);


}

Caso precise usar em mais lugar aconselho a fazer metódos get/set.

K

para melhorar o que eu poderia cologar.

Brn_SI

Eai galera !!

Kra neste caso ai tem varios jeitos de vc fazer..

Vc pode fazer com classe diferentes :

public class Xxx(){

	private String nome1;
	private int idade;

	public String  RetornaNome(){
		return nome1;
	}
	public int Retornaidade(){
		return idade;
	}
	public void MudaNome(String nome){
		nome1 = nome;
	}
	public void MudaIdade(int Midade){
		idade = Midade;
	}
}
public class teste(){

	public static void main(String args[]){

		Xxx x = new Xxx();
		x.MudaNome("Fernando");
		x.MudaIdade(32);
		System.out.println(x.RetornaNome());
		System.out.println(x.RetornaIdade());
	}
}

Ou na mesma classe:

public class teste(){

	public static void main(String args[]){
		
		String nome1 = "Fernando";
		int idade = 32;

		System.out.println(nome1);
		System.out.println(idade);
	}
}

Mas ainda prefiro usar o primeiro jeito que passei que e o metodo Orientado a Objeto que e mais utilizado em Java.
Kra espero ter ajudado qualquer outra duvida vc posta ai novamente..

flw.

K

cara eu adorei a primeira opção que vc fez! vc usou varias classes e reuniu tudo no main!
no caso todas as classes se veem sem algum problema?
porque vc nao cologou o static nessas classes?

foi mal pelas perguntas e porque eu quero aprender com vcs meus amigos.

eu poderia usar algum ambiente grafico?

o quer dizer isso que vc fez

Xxx x = new Xxx();

x.MudaNome(“Fernando”);

x.MudaIdade(32);

Brn_SI

rsrsrsr,
Este e um metodo mais usado que eo Orientado a Objeto no Java.

Respondendo a 1º pergunta : Neste caso nao são classes, são metodos dentro de uma classe que se chama Xxx , e quando eu Instancio a classe em um objeto este objeto tem acesso a todas estes metodos.

Respondendo a 2º pergunta: O metodo static nao e muito usado nao, e usado somente em casos especificos. O metodo static e usado para que nao precise instanciar a classe para chamar ela em outro classe, desde vc intanciar ela e somente colocar o nome da classe e o nome do metodo, mas nao e muito usado se eu nao me engano pq ela ja instancia direto ai fica alocando memoria sem motivo.

Respondendo a 3º pergunta: Sim, sem problema vc poderia usar esta classe em quase todos ambiente gráfico.

Xxx x = new Xxx(); // Estou Instanciando a classe Xxx em um objeto que se chama x tipo ( tenho uma classe que se chama nome entao fica Nome bruno = new Nome(); )esta instancia eu estou fazendo que o objeto que eu criei que se chama x podera utilisar todos os metodos colocados na classe Xxx

x.MudaNome(“Fernando”); //Estou utilisando o objeto x para chamar o metodo MudaNome e jogando o nome “Fernando” nele o que esta fazendo: eles esta pegando fernando e indo la na classe Xxx e fazendo o seguinte

public void MudaNome(String nome){ nome1 = nome; }

tipo se fosse assim:

public void MudaNome(String "Fernando"){ nome1 = "Fernando"; }

x.MudaIdade(32); // e Este e a mesma coisa, ele acessa o metodo “MudaIdade(32)” e faz o mesmo que o de cima com este metodo.

ta ai, espero ter ajudado
qualquer duvida posta ai novamente.

flw

O

Aí kerbage, blz?
Te recomendo a leitura da apostila de Java básico da caelum: FJ-11 - Java e Orientação a Objetos. Segue o link: http://www.caelum.com.br/apostilas/

K

do caralho galera valeu pela força! muito quando as pessoas ajudam aos outros! obrigado eu vou ver esse pdf sim!

o legal é ver um programa começa do zero e com o tempo evolui!

K

cara muito bom essa apostila! vc aconselha eu ler por partes as apostilas! exemplo basico e avançado?

Criado 11 de janeiro de 2009
Ultima resposta 18 de jan. de 2009
Respostas 14
Participantes 8