Classes usando bloco de notas

Pessoal, estou tentando criar um código bem simples, só pra repassar o aprendizado em classes…

Normalmente, uso o Netbeans, mas aqui no trabalho não posso instalar, então tento repassar o que aprendo lá, usando o bloco de notas. Está tudo configurado direitinho, o problema não é este, rodo e funcionam os códigos mais simples que fiz, usando só um arquivo de notepad com o método main.
Mas agora, quando fui fazer um teste usando classes, não roda. Diz que “a classe não foi reconhecida”, ou “não encontrada”. Não sei se estou fazendo alguma coisa errada… o que fiz foi fazer o código que tem o método main, salvando ele como .java; em outro arquivo notepad salvei o código da classe que quero acessar, salvando ela como .java também, guardada na mesma pasta.

Os códigos:
main:
[i]public class Jogo{
public static void main(String []args){

peao Jogador1 = new peao();
peao.nome= “João”;
peao.pontos=10;

System.out.println("Pontos anteriores: "+ peao.pontos);
peao.ganhaPonto();
System.out.println("Pontos atuais: "+ peao.pontos);
}
}[/i]---
A classe que tento acessar é peao:
[i]public class peao{
private String nome;
private int pontos;

//criação do objeto “peao”:
public peao(String nome, int pontos){
//autoreferência dos valores que o objeto vai receber como atributos:
this.nome = nome;
this.pontos=pontos; }

//métodos que a classe executa:
public void ganhaPonto(){
pontos = pontos+1;
}

//métodos acessores:
public getPontos(int pontos){
return pontos;
}

public void setNome(String nome){
this.nome=nome;
}

public void setPontos(int pontos){
this.pontos=pontos;
}

public getNome(String nome){
return nome;
}
}[/i]Muito obrigado a quem puder me dar uma luz.
Té.

Cara, tenta assim:

java -cp . “arquivo”

Obs: Você coloca isso depois de ter compilado o arquivo.java sem o .class

Se está no mesmo arquivo declare a classe Peão sem public.

Apenas: class Peao

Até mais.

[quote=utroz]Se está no mesmo arquivo declare a classe Peão sem public.

Apenas: class Peao

E outra os atributos são privados, você tem que usar o setter para manipula-los, eles não podem serem acessados diretamente, pesquise a respeito.
Até mais.[/quote]

[code]public class peao{
private String nome;
private int pontos;

//criação do objeto "peao":
public peao(String nome, int pontos){
//autoreferência dos valores que o objeto vai receber como atributos:
	this.nome = nome;
	this.pontos=pontos;
	}

//métodos que a classe executa:
public void ganhaPonto(){
	pontos = pontos+1;
}

//métodos acessores:
/* erro 
para retornar um valor neste caso não é necessário
passar parâmetro para o getPontos
*/
public int getPontos(){ /* erro */
	return pontos;
}

public void setNome(String nome){
	this.nome=nome;
}

public void setPontos(int pontos){
	this.pontos=pontos;
}

/* erro 
para retornar um valor neste caso não é necessário
passar parâmetro para o getNome
*/
public String getNome(){ 
	return nome;
}

}[/code]

[code]public class Jogo{
public static void main(String []args){

	//peao Jogador1 = new peao();
	//
	//
	/* Para inicializar as variáveis neste caso tem que usar os:
	métodos: Jogador1.setNome("João");
			 Jogador1.setPontos(10);
	Já que na classe peao este argumentos estão declarada com private
	para que estas duas linhas abaixo funcione seria necessário
	declarar na classe peao como public
	*/
	//Jogador1.nome= "João";
	//Jogador1.pontos=10;
	/*
	Como na classe peao foi feito um construtor recebendo String nome e int pontos
	*/
	peao Jogador1 = new peao("Joao", 10);
	/*
	// não é necessário inicializar novamente nas linhas seguintes
	// já foi inicializado no construtor.
	// Se for usar os set deve ser assim:
	 
	Jogador1.setNome("João");
	Jogador1.setPontos(10);
	*/
	
	System.out.println("Pontos anteriores: "+ Jogador1.getPontos()); /*usar os get para acessar os argumentos*/
	Jogador1.ganhaPonto();
	System.out.println("Pontos atuais: "+ Jogador1.getPontos()); /*usar os get para acessar os argumentos*/
}

}
[/code]

Cara, você está tentando compilar pelo DOS?

Sim, pelo DOS. Usando bloco de notas.

Cara só um conselho quando for postar o código, poste entre code. É mais facil para ler …:wink:

Seus metodos gets estão sem o tipo de retorno e eles não recebem parametros

public int getPontos(){ return pontos; }

public String getNome(){ return nome; }

O método Construtor deve ter o nome igual ao da Classe

public Peao(String nome, int pontos){ this.nome = nome; this.pontos=pontos; }

Seu metodo main também está errado

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

	Peao peao = new Peao("Joao", 10);
	
	peao.ganhaPonto();
	System.out.println("Pontos: " +peao.getPontos());
	} 

}[/code]

Valeu pessoal! Consegui!

Ficou assim:
Classe Jogo:

[code]
public class Jogo{

public static void main(String []args){

peao Jogador1 = new peao(“João”, 10);

Jogador1.setNome(“João”);
Jogador1.setPontos(10);

System.out.println("Pontos anteriores: "+ Jogador1.pontos);
//11
Jogador1.ganhaPonto();

System.out.println("Pontos atuais: "+ Jogador1.pontos);

}

}[/code]

Classe peao:

public class peao{

//declaração das variáveis da classe:
private String nome;
public int pontos;

//criação do objeto "peao":
public peao(String nome, int pontos){
//autoreferência dos valores que o objeto vai receber como atributos:
this.nome = nome;
this.pontos=pontos;
}

//métodos que a classe executa:
public int ganhaPonto(){
pontos = pontos+1;
return pontos;
}
//19
//métodos acessores:
public int getPontos(int pontos){
return pontos;
}

public void setNome(String nome){
this.nome=nome;
}

public void setPontos(int pontos){
this.pontos=pontos;
}

public String getNome(String nome){
return nome;
}

}

Valeu mesmo pela ajuda! Estou pegando a manha ainda e a ajuda de vocês é uma das motivações que nos fazem continuar a tentar.
Té.

gilmarostjen,

Só queria ressaltar que:

Na classe peão, os metodos getters e setters vc está fazendo redundancia. Os metodos setter estão certos eles servem para alterar os atributos “privates”. Já seus metodos getters estão incorreto, pois metodo get não recebe parametro, o metódo get vai retornar o valor do atributo que esta como private. OK?

Seu metodo ganhaPonto retorna valor do tipo int, na minha opinoao acho que isso não seria necessário, pois o metodo get ja se encarrega disso.

Na classe jogo vc inicio o seu construtor com os valores ("João", 10) Correto. Porém não precisa fazer isso de novo com os setters, vc irá utilizar os setters quando for alterar o valor do atributo, tipo colocando outro nome e outra pontuação. Entendeu???

Uma boa prática é nomear uma classe com a primeira letra em maiúscula.
No seu caso: Peao (e não “peao”).

Certo.

Vou dar uma olhada e alterar para ver como fica assim.
Valeu pelo toque da redundância, ainda estou me habituando ao paradigma de orientação a objetos…

Té.