Conceitos de POO, Arrays e Exemplos em Java

Classificado em Computação

Escrito em em português com um tamanho de 4,77 KB

Conceitos Fundamentais de POO e Java

Objetos

Objetos criados a partir de classes são armazenados no heap.

Variáveis de Referência: Variáveis que referenciam objetos que estão na memória.

POO

Overloading (Sobrecarga): Métodos com o mesmo nome com parâmetros de tipos diferentes ou quantidades diferentes.

Array

  • São entidades estáticas no sentido de que, uma vez criadas, mantêm o mesmo tamanho, embora uma referência de array possa ser atribuída a um novo array de tamanho diferente.
  • Subscritos: São os intervalos do array.
  • Erro por um (Off-by-one error): Erro de programação comum onde um valor é um a mais ou a menos do que ele deveria ser.
  • Inicializador de array: Ou lista inicializadora.
  • length: Atributo.

Exemplo de Código: Matrizes e Candidatos em Java

class Questao_Dezenove 
{
    public static void main(String[] args) 
    {
        int m[][] = new int [4][3];
        int n[][] = new int [3][4];
        int aux;

        for (int i = 0; i < m.length; i++)
        {
            for (int j = 0; j < m[0].length; j++)
            {
                m[i][j] = (int)(Math.random()*10);
                n[j][i] = (int)(Math.random()*10);
            }
        }

        for (int i = 0; i < m.length; i++)
        {
            for (int j = 0; j < m[0].length; j++)
            {
                System.out.print(m[i][j]+"\t");
            }
            System.out.println();
        }

        System.out.println();
        for (int i = 0; i < n.length; i++)
        {
            for (int j = 0; j < n[0].length; j++)
            {
                System.out.print(n[i][j]+"\t");
            }
            System.out.println();
        }

        System.out.println();
        for (int i = 0; i < m.length; i++)
        {
            for (int j = 0; j < n[0].length; j++)
            {
                aux = 0;
                for (int a = 0; a < m[0].length; a++)
                {
                    aux += m[i][a]*n[a][j];
                }
                System.out.print(aux+"\t");
            }
            System.out.println();
        }
    }
}

class Candidato 
{ 
    int numero; 
    String nome; 
    int votos; 

    public boolean classificado(int votosminimos) 
    { 
        return (this.votos >= votosminimos); 
    } 

    public boolean classificado() 
    { 
        return (this.votos >= 10); 
    } 

    public void mostrarDados(int i) 
    { 
        System.out.print((i + 1) + " " + this.numero + " " + this.nome + " " + this.votos); 
    } 
}

class LerCandidato 
{
    public static void main(String[] args) throws Exception 
    {
        int votosminimos, soma = 0, maior = 0; 
        double media; 
        String mensagem; 

        System.out.println("Digite a quantidade de candidatos: "); 

        Candidato candidatos[] = new Candidato[JUtil.readInt()]; 

        for (int i = 0; i < candidatos.length; i++) 
        {
            candidatos[i] = new Candidato(); 
            System.out.println("Informe o número do candidato: "); 
            candidatos[i].numero = JUtil.readInt(); 

            System.out.println("Informe o nome: "); 
            candidatos[i].nome = JUtil.readString(); 

            System.out.println("Informe a quantidade de votos: "); 
            candidatos[i].votos = JUtil.readInt(); 

            soma += candidatos[i].votos; 
            if ((i == 0) || (candidatos[i].votos > candidatos[maior].votos)) 
            {
                maior = i; 
            }
        } 

        media = (double) soma / candidatos.length; 
        System.out.println("Informe o número mínimo de votos: "); 
        votosminimos = JUtil.readInt(); 

        System.out.println("Número Código Nome Votos Classificado"); 
        for (int i = 0; i < candidatos.length; i++) 
        {
            candidatos[i].mostrarDados(i);

            if (votosminimos != 0) 
            { 
                mensagem = (candidatos[i].classificado(votosminimos)) ? " Sim, Excedeu " + (candidatos[i].votos - votosminimos) : " Não, Faltou " + (votosminimos - candidatos[i].votos); 
            } 
            else 
            { 
                mensagem = (candidatos[i].classificado()) ? " Sim, Excedeu " + (candidatos[i].votos - 10) : " Não, Faltou " + (10 - candidatos[i].votos); 
            } 
            System.out.println(mensagem); 
        } 

        System.out.println("A soma dos votos = " + soma); 
        System.out.println("Média dos votos = " + media); 
        System.out.println("O mais votado: " + candidatos[maior].nome + " com " + candidatos[maior].votos); 
        JUtil.pause(); 
    } 
}

Entradas relacionadas: