Uma ajudinha num pequeno programa

Tá dando um erro, e eu não consigo saber o que é. Pra não perder a lógica do aprendizado, gostaria que me apontassem.

O programinha é esse:
class meuobjeto {
String nome;
int idade;
String telefone;
meuobjeto amigo= new meuobjeto();
amigo.idade=12;
amigo.nome=“Joao”;
amigo.telefone=“24050660”;
public void aniversario(){
idade=idade+1;
}

Basicamente, é só pra depois imprimir a idade e a nova idade do amigo no final. Mas antes de eu inserir isso, dá os erros a seguir. O que posso fazer?
http://img105.imageshack.us/img105/9072/java1kn5.jpg

Vc não pode associar valores à atributos de uma classe dentro do corpo da mesma mas fora de um método. Fora do escopo de um método válido vc pode SOMENTE declarar atributos.

seu código:

 amigo.idade=12;
amigo.nome="Joao";
amigo.telefone="24050660"; 

Como PODERIA ser:

public void initializeAmigo(){
    amigo.idade=12;
    amigo.nome="Joao";
    amigo.telefone="24050660"; 
}

Cara para você setar valore em um objeto é melhor criar os métodos getters e setter. assim:

public class meuobjeto {
	 
	private String nome; 
	private int idade; 
	private String telefone;

	public int getIdade() {
		return idade;
	}
	public void setIdade(int idade) {
		this.idade = idade;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getTelefone() {
		return telefone;
	}
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}
			
}

depois você instancia o objeto meuObjeto

meuobjeto amigo= new meuobjeto(); 

e para setar valores ao objeto use

amigo.setNome("Joao");

e assim por diante.

É isso que queira fazer?

Notei q vc está instanciando seu objeto como se vc estivesse em um método static.

E para sua “aplicativo” rodar ele necessita do método main.

Ficando assim:

[code]public class MeuObjeto {

String nome;

int idade;

String telefone;

public void aniversario() {
	idade += 1;
}

public static void main(String[] args) {
	MeuObjeto amigo = new MeuObjeto();
	amigo.idade = 12;
	amigo.nome = "Joao";
	amigo.telefone = "24050660";
}

}[/code]

OK … ai sim … ele iria compilar perfeitamente

Falowww

T+

so nao entendi pq vc fez amigo.idade = 12.
e tenho quase certeza que isso nao é permitido para atributos dentro da class… vc poderia fazer isso usando metodo… seria mais elegante se vc usar metodos para acessar esses atributos, atraves do objeto da classe assim:


public void setIdade(int id){
idade = id
}

public int getIdade(){
return idade;}
//na class  principal
objeto.setIdade(12);
System.out.println("idade" + objeto.getIdade());

:smiley:

Ok, na verdade estou me guiando pelas instruções de uma dessas apostilas genéricas da net. As instruções são falhas.

Vou seguir as idéias de vocês e depois retorno.

Bem, me parece que o que a apostila tinha em mente foi o exemplo dado pelo silva.fernandes. Que funcionou perfeitamente. Agradeço a todos pelos exemplos. E vou testar todos.

Té +.

Pega aí :


public class MeuObjeto 
{
    private static String nome;
    private static int idade;
    private static String telefone;
    
    public static void main(String args[])
    {
        MeuObjeto amigo= new MeuObjeto();
        amigo.idade=12;
        amigo.nome="Joao";
        amigo.telefone="24050660";        
        System.out.println ("Idade antiga = " + idade);
        amigo.idade = MeuObjeto.Aniversario();
        System.out.println ("Idade nova = " + idade);
    }    
    public static int Aniversario()
    {
        idade=idade+1;
        return idade;
    }
    
}

Té +

Fabio Nascimento

Opa! Fábio, na apostila frisa que esse procedimento aniversário não precisaria ser com o ‘return’. Você acha que assim com o ‘static’ e o ‘return’ fica melhor?