Mais "Helo Word" um para ser avaliado

A algunds dias atraz vi voces avaliliando o codigo de um outro novato , dai resouvi mandar o meu tambem para ver o que vocês acham.
estou iniciando no java agora , e como exercicio peguei meus antigos exercicios de logica e resolvi escrever em java veja so no que deu , o anuciando e o seguinte:
Faca um algoritmo que leia para 100 pessoas os seguintes dados : nome,Idade e sexo. determine
*numero de homens;
*numero de mulheres;
numero de pessoas com idade inferior a 30 anos.
Considerando que sera informado "M " para masculino e “F” para feminino.
veja so o que saiu

import corejava.*; // do livro coreJava volume 1

class pessoas
{ public pessoas(int Idade,String Nome,String Sexo)
{ this.Idade = Idade;
this.Nome = Nome;
this.Sexo = Sexo;}

public int getIdade()
 {return Idade;}	 
public String getNome()
  {return Nome;}	
public String getSexo()
  {return Sexo;}

 private int Idade;
 private String Nome;
 private String Sexo;}

class pesquisa
{public pesquisa(pessoas[] clientes)
{this.clientes = clientes;
resultado();}
private void resultado()
{
int a = 0;
int b = 0;
int c = 0;

   for(int x = 0 ; x < clientes.length ; x++ )
	 { 
	   If ("M".equalsIgnoreCase(clientes[x].getSexo()))
		   {a++;}
	   if ("F".equalsIgnoreCase(clientes[x].getSexo()))
		   {b++;}
	   if (clientes[x].getIdade() <= 30)
	       {c++;}
	 }
	       
		   System.out.println("");
		   System.out.println("Ha "+ a +" homens cadastrados." );
	       System.out.println("");
		   System.out.println("Ha "+ b +" mulheres cadastrados." );
		   System.out.println("");
		   System.out.println("Ha "+ c +" Clientes com menos de 30 anos " );
  }

     	  private pessoas[] clientes;

}

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

   int[] Idade = new int[100];
   String[] Nome = new String[100];
   String[]  Sexo = new String[100];
    
   for(int x = 0; x < 5 ; x++)
     { 
 	     Idade[x] = Console.readInt("Digite a Idade do Cliente");
		 Nome[x] = Console.readLine("Digite o Nome do Cliente");
	     Sexo[x] = Console.readLine("Dige M ou F Conforme o Sexo do Clinte");
	 }

   pessoas[] clientes = new pessoas[100]; 
 
    for (int x = 0 ; x< 5;x++)
	{
        clientes[x] = new pessoas(Idade[x],Nome[x],Sexo[x]);   
    }  
  
    pesquisa resultado = new pesquisa(clientes);
	
  
  }

}

Faz assim: edite o seu post, coloque o codigo entre as tags e , e ai damos uma olhada :slight_smile:

Rafael

post ? como assim

import corejava.*; // do livro coreJava volume 1 

class pessoas 
{ public pessoas(int Idade,String Nome,String Sexo) 
{ this.Idade = Idade; 
this.Nome = Nome; 
this.Sexo = Sexo;} 

public int getIdade() 
{return Idade;} 
public String getNome() 
{return Nome;} 
public String getSexo() 
{return Sexo;} 

private int Idade; 
private String Nome; 
private String Sexo;} 

class pesquisa 
{public pesquisa(pessoas[] clientes) 
{this.clientes = clientes; 
resultado();} 
private void resultado() 
{ 
int a = 0; 
int b = 0; 
int c = 0; 

for(int x = 0 ; x < clientes.length ; x++ ) 
{ 
If ("M".equalsIgnoreCase(clientes[x].getSexo())) 
{a++;} 
if ("F".equalsIgnoreCase(clientes[x].getSexo())) 
{b++;} 
if (clientes[x].getIdade() <= 30) 
{c++;} 
} 

System.out.println(""); 
System.out.println("Ha "+ a +" homens cadastrados." ); 
System.out.println(""); 
System.out.println("Ha "+ b +" mulheres cadastrados." ); 
System.out.println(""); 
System.out.println("Ha "+ c +" Clientes com menos de 30 anos " ); 
} 

private pessoas[] clientes; 

} 


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

int[] Idade = new int[5]; 
String[] Nome = new String[5]; 
String[] Sexo = new String[5]; 

for(int x = 0; x < 5 ; x++) 
{ 
Idade[x] = Console.readInt("Digite a Idade do Cliente"); 
Nome[x] = Console.readLine("Digite o Nome do Cliente"); 
Sexo[x] = Console.readLine("Dige M ou F Conforme o Sexo do Clinte"); 
} 

pessoas[] clientes = new pessoas[5]; 

for (int x = 0 ; x< 5;x++) 
{ 
clientes[x] = new pessoas(Idade[x],Nome[x],Sexo[x]); 
} 

pesquisa resultado = new pesquisa(clientes); 


} 

}

Bom…

  1. Identacao pessima
  2. Variaveis nao seguem o padrao do Java ( primeira letra da variavel deve ser minuscula )
  3. Classes nao seguem o padrao do Java ( primeira letra deve ser maiuscula )
  4. Ordem de declaracao dos membros da classe estao por ultimo… o usual eh declarar logo no inicio da classe )
  5. Alguns if()'s deveriam estar aninhados em else-if, uma vez que voce esta verificando um mesmo tipo de assunto. Por exemplo, ao inves de fazer
if ("nome1".equals(nome)) {
    // xxx
}

if ("nome2".equals(nome)) {
    // yyy
}

if ("nome3".equals(nome)) {
    // zzz
}

faca

if ("nome1".equals(nome)) {
    // xxx
}
else if ("nome2".equals(nome)) {
    // yyy
}
else if ("nome3".equals(nome)) {
    // zzz
}
  1. Voce esta fazendo 2 for()'s, quando poderia fazer tudo em 1 unico

  2. Voce esta chamando o metodo “resultado()” diretamente do construtor. Isso nao eh exatamente o ciclo “esperado” na hora de processar, alem de nao ser tarefa do construtor fazer esse tipo de acao… voce teria que ter muito bem documentado o teu construtor afim de informar todas as acoes que ele executa. Ou seja, remova a chamada ao metodo resultado() do construtor, torne ele publico e chame explicitamente o metodo.

Uma rapida melhoria na parte visual do codigo te deixa com:

import corejava.*; // do livro coreJava volume 1

class Pessoas
{
	private int idade;
	private String nome;
	private String sexo;

	public Pessoas(int idade, String nome, String sexo)
	{ 
		this.idade = idade;
		this.nome = nome;
		this.sexo = sexo;
	}

	public int getIdade()
	{
		return this.idade;
	}

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

	public String getSexo()
	{
		return this.sexo;
	}
}

class Pesquisa
{
	private Pessoas[] clientes;

	public Pesquisa(Pessoas[] clientes)
	{
		this.clientes = clientes;
	}

	public void resultado()
	{
		int a = 0;
		int b = 0;
		int c = 0;

		for(int x = 0 ; x < clientes.length ; x++ ) {
			if ("M".equalsIgnoreCase(clientes[x].getSexo())) {
				a++;
			}
			else if ("F".equalsIgnoreCase(clientes[x].getSexo())) {
				b++;
			}
		
			if (clientes[x].getIdade() <= 30) {
				c++;
			}
		}

		System.out.println("");
		System.out.println("Ha "+ a +" homens cadastrados." );
		System.out.println("");
		System.out.println("Ha "+ b +" mulheres cadastrados." );
		System.out.println("");
		System.out.println("Ha "+ c +" Clientes com menos de 30 anos " );
	}
}


public class Cadastro
{
	public static void main(String[] args)
	{
		Pessoas[] clientes = new Pessoas[5];

		for(int x = 0; x < 5 ; x++) {
			int idade = Console.readInt("Digite a Idade do Cliente");
			String nome = Console.readLine("Digite o Nome do Cliente");
			String sexo = Console.readLine("Dige M ou F Conforme o Sexo do Clinte");

			clientes[x] = new Pessoas(idae, nome, sexo);
		}

		Pesquisa pesquisa = new Pesquisa(clientes);
		pesquisa.resultado();
	}
} 

Rafael