Private

6 respostas
M

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:

6 Respostas

peczenyj

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

M

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

}

}

R

qual a mensagem de erro?

M
E:\mimi>javac TestaAluno.java

TestaAluno.java:23: achasituacao(java.lang.String,java.lang.Double) in Aluno can

not be applied to ()

cidadao.achasituacao();
peczenyj

Nada como indentar o codigo e colocar entre tags 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();
	}

}
LPJava

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!!

Criado 1 de maio de 2006
Ultima resposta 2 de mai. de 2006
Respostas 6
Participantes 4