Private

Gente eu fiz este programa e nele meus atributos estão public eu gostaria de colocar todos eles private como eu faria isto???

public class Aluno
{
public String nome;
private String situacao;
public int matricula;
public double nota1, nota2, media;
public void imprimeAluno()
{
System.out.println(“Nome do aluno:”+nome);
System.out.println(“Matrícula:”+matricula);
System.out.println(“Nota da P1:”+nota1);
System.out.println(“Nota da P2:”+nota2);
System.out.println(“Situação:”+situacao);
}

public void calculamedia()
{
	media=((nota1+nota2)/2);
	System.out.println("Média do aluno:"+media);
}
public void axasituacao()
{
  if (media>=7.0)
	situacao=("Aluno aprovado!");
 else
	situacao=("Aluno em recuperação!");
}

}

import java.util.Scanner;
public class TestaAluno
{
public static void main(String args[])
{
Scanner entrada=new Scanner(System.in);
String nomedoAluno;
int matriculadoAluno;
double nota1doAluno,nota2doAluno;
Aluno cidadao=new Aluno();

             		System.out.printf("Entre com o nome do Aluno:");
	nomedoAluno=entrada.nextLine();
             		System.out.printf("Entre com a matrícula do Aluno:");
	matriculadoAluno=entrada.nextInt();
			System.out.printf("Entre com a nota da P1 do Aluno:");
	nota1doAluno=entrada.nextDouble();
			System.out.printf("Entre com a nota da P2 do Aluno:");
  		nota2doAluno=entrada.nextDouble();

	System.out.println("Imprimindo dados do aluno: ");
	cidadao.nome=nomedoAluno;
	cidadao.matricula=matriculadoAluno;
	cidadao.nota1=nota1doAluno;
	cidadao.nota2=nota2doAluno;
      	cidadao.calculamedia();
	cidadao.axasituacao();
	cidadao.imprimeAluno();
	
}

}

:lol: :lol: :lol: :lol: :lol: :lol:

Colocando a palavra private na declaração dos atributos e acessando-os através de métodos publicos ?

Tudo bem eu ate fiz assim mas ta dando erro:

public class Aluno {

private String nome;

private String situacao;

private Double nota1, nota2, media;


public void calcularMedia(Double nota1, Double nota2) {
	media = ((nota1 + nota2) / 2);
	System.out.println("Média do aluno:" + media);
}

public void achasituacao(){
	{
  if (media>=7.0)
	situacao=("Aluno aprovado!");
 else
	situacao=("Aluno em recuperação!");

}
}

public void imprimeAluno() {
	System.out.println("Nome do aluno:" + nome);
	System.out.println("Situacao do aluno:" + situacao);
	System.out.println("Nota 1 do aluno:" + nota1);
	System.out.println("Nota 2 do aluno:" + nota2);
	
}

public Double getMedia() {
	return media;
}

public void setMedia(Double media) {
	this.media = media;
}

public String getNome() {
	return nome;
}

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

public Double getNota1() {
	return nota1;
}

public void setNota1(Double nota1) {
	this.nota1 = nota1;
}

public Double getNota2() {
	return nota2;
}

public void setNota2(Double nota2) {
	this.nota2 = nota2;
}
public String getsituacao(){
	return situacao;
}
public void setsituacao(String situacao){
	this.situacao=situacao;

}

}

import java.util.Scanner;

public class TestaAluno {
public static void main(String args[]) {
Scanner entrada = new Scanner(System.in);
String nomedapessoa;
String nota1dapessoa;
String nota2dapessoa;
Aluno cidadao = new Aluno();
cidadao.imprimeAluno();
cidadao.achasituacao();
System.out.print(“Entre com o nome do aluno:”);
nomedapessoa = entrada.nextLine();
System.out.print(“Entre com a nota1 do aluno:”);
nota1dapessoa = entrada.nextLine();
System.out.print(“Entre com a nota 2 do aluno:”);
nota2dapessoa = entrada.nextLine();
cidadao.setNome(nomedapessoa);
cidadao.setNota1(Double.parseDouble(nota1dapessoa));
cidadao.setNota2(Double.parseDouble(nota2dapessoa));
System.out.println(“Imprimindo dados do aluno: XXXXXXXXXXX------XXXXXXXXXXX”);
cidadao.imprimeAluno();
cidadao.calcularMedia(cidadao.getNota1(), cidadao.getNota2());
cidadao.achasituacao();
}

}

qual a mensagem de erro?

E:\mimi>javac TestaAluno.java
TestaAluno.java:23: achasituacao(java.lang.String,java.lang.Double) in Aluno can
not be applied to ()
cidadao.achasituacao();

Nada como indentar o codigo e colocar entre tags CODE :wink:

[code]//eh bom ter uma classe publica por arquivo
class Aluno {
private String nome, situacao; // acho que vc nao precisa da situacao
private double nota1, nota2, media; // acho que vc nao precisa da media

/* Vai um construtor ai ? */
public Aluno(){ } // como vc quer instanciar sem um construtor ???

//este aqui é um presente :)
public Aluno(String nome, double nota1, double nota2){
	this.nome=nome;
	this.nota1=nota1;
	this.nota2=nota2;
}



// por que vc vai calcular a media com 2 notas externas ?
// vc ja seta as notas com 2 metodos diferentes... 
// nao precisa, vai por mim

/* public void calcularMedia(double nota1, double nota2) {
	media = ((nota1 + nota2) / 2);
	System.out.println("Média do aluno:" + media);
} */


public void calcularMedia() {		
	media = ((this.nota1 + this.nota2) / 2.0);
} 

public void acharSituacao(){

// { <— acho que está sobrando… !!!
/* Daonde tu tirou isso : A=(“algumacoisa”) ???
if (media>=7.0)
situacao=(“Aluno aprovado!”);
else
situacao=(“Aluno em recuperação!”);*/

	if (media >= 7.0)
		this.situacao="Aprovado";
	else
		this.situacao="Reprovado";			
}

// } idem…

public void imprimeAluno() {		
	calcularMedia();// se nao calculou a media, calcula agora
	acharSituacao();// se nao achou a situacao, acha agora
	
	System.out.println("Nome:     " + nome);
	System.out.println("Situacao: " + situacao);
	System.out.println("Nota 1:   " + nota1);
	System.out.println("Nota 2:   " + nota2);				
	System.out.println("Média :   " + media);
	
	/* Esta forma eu __acho__ mais logico:
	
	System.out.println("Nome:     " + nome);		
	System.out.println("Nota 1:   " + nota1);
	System.out.println("Nota 2:   " + nota2);				
	System.out.println("Média :   " + getMedia());
	System.out.println("Situacao: " + getSituacao());		
	
	onde getMedia() retorna ((this.nota1 + this.nota2) / 2)
	e getSituacao() faz o mesmo calculo interno (ou melhor, chama getMedia() ) e, se for >=7 retorna aprovado, senão...
	
	nao ha por que guardar situacao e media como atributos IMHO :)
	*/
}


// metodos interessantes, porem eu só codificaria os que eu precisasse
public String getNome() {
	return nome;
}

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

public double getNota1() {
	return nota1;
}

public void setNota1(double nota1) {
	this.nota1 = nota1;
}

public double getNota2() {
	return nota2;
}

public void setNota2(double nota2) {
	this.nota2 = nota2;
}

public double getMedia() {
	return media;
}

/* ta maluco ? A media depende das notas...!
public void setMedia(double media) {
	this.media = media;
}*/	

public String getsituacao(){
	return situacao;
}

/* A situação depende da media, certo ?
public void setsituacao(String situacao){
	this.situacao=situacao;
} */

}

import java.util.Scanner;

public class TestaAluno {
public static void main(String args[]) {
Scanner entrada = new Scanner(System.in);
String nomedapessoa;
String nota1dapessoa;
String nota2dapessoa;
Aluno cidadao = new Aluno();

	//vai imprimir o que ??? não foi inicializado!!!
	/* cidadao.imprimeAluno();
	cidadao.achasituacao();*/

	System.out.print("Entre com o nome do aluno:");		
	nomedapessoa = entrada.nextLine();
	
	System.out.print("Entre com a nota1 do aluno:");
	nota1dapessoa = entrada.nextLine();
	
	System.out.print("Entre com a nota 2 do aluno:");
	nota2dapessoa = entrada.nextLine();
	
	cidadao.setNome(nomedapessoa);
	cidadao.setNota1(Double.parseDouble(nota1dapessoa));
	cidadao.setNota2(Double.parseDouble(nota2dapessoa));

/* ou
double nota1dapessoa = Double.parseDouble(entrada.nextLine());
(…)
Aluno cidadao = new Aluno(nomedapessoa,nota1dapessoa,nota2dapessoa);

que tal ? */

	System.out.println("Imprimindo dados do aluno: XXXXXXXXXXX------XXXXXXXXXXX");
	cidadao.imprimeAluno();
}

} [/code]

Opa nao seria melhor para cada classe vc gerar um arquivo em java ou seja um arquivo com os metodos e outros com os objetos!! Acho o q tem em anexo serve!!