Porque voltou como valor null!

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.

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.

[quote=kerbage][quote]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.[/quote]

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:

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!

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!

Tente usar as tag code.

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

[code]

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

} [/code]

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

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

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

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

} [/code]

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

para melhorar o que eu poderia cologar.

Eai galera !!

Kra neste caso ai tem varios jeitos de vc fazer…

Vc pode fazer com classe diferentes :

[code]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());
}

}[/code]

Ou na mesma classe:

[code]public class teste(){

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

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

}[/code]

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.

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

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

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/

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!

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