Exercicio Lista(Casa)[RESOLVIDO]

12 respostas
williamdasflores

Boa Noite Galera!

Estou fazendo uns exercicios que achei aqui no fórum.

O exercicio é esse:
Desenvolva em JAVA uma classe Casa que represente uma casa e possua os seguintes atributos:
1 cor
2 portas (Lista de portas, ou seja, Array)
e os seguintes métodos:
1 pinta
2 quantasPortasEstaoAbertas
Teste sua Casa numa classe de teste. Nela, crie uma casa e pinte-a. Crie 3 portas e coloque-as na casa. Abra e feche as mesmas como desejar. Utilize o método quantasPortasEstaoAbertas para imprimir o número de portas abertas.

A classe Porta eu fiz de boa. Agora essa casa eu até fiz só que quando eu compilo da erro.
Vou postar a classe Casa e a Main aqui.

public class Casa {
    String cor;
    Porta[] p1 = new Porta[3];

    public void Pinta(String cor)
    {
        this.cor = cor;
    }

    public void QuantidadePortasAbertas()
    {
        int i = 0, contPortas = 0;
        for(i = 0; i < p1.length; i++)
        {
            if(p1[i].estaAberta == true)
            {
                contPortas += 1;
            }
        }

        System.out.println("Quantidade de portas ABERTAS: " +contPortas);
     }

    public void imprime()
    {
        System.out.println("Cor da Casa: " +this.cor);
    }
public class Main {

    public static void main(String[] args) {
        Porta p1 = new Porta();
        Porta p2 = new Porta();
        Casa c1 = new Casa();

        p1.Abre();
        p2.Abre();
        c1.QuantidadePortasAbertas();

        
        
    }

}

alguem em da um help ai, por favor[code]

12 Respostas

adriano_si

Cara… só pra nos facilitar a vida, coloque seu código entre as tags CODE…

williamdasflores

Opa…mau aí…não sabia como colocava…rsrsr tão simples. Fica melhor para visualizar mesmo

ViniGodoy

Sabia que tinha tido um deja vu:


gRoOve

Primeiro, posta o erro que está ocorrendo.
Segundo, verifique onde está a ligação entre a porta e a casa? Ou seja, deve inserir a porta na casa.

williamdasflores
Exception in thread main java.lang.NullPointerException

at app1.Casa.QuantidadePortasAbertas(Casa.java:17)

at app1.Main.main(Main.java:12)

Java Result: 1
gRoOve

Como fale anteriormente, não nenhuma porta foi inserida na casa, você apenas criou o array e reservou na memória lugar para 3 portas, mas em nenhum momento está referenciando um objeto de Porta, por isso o erro.

Rafael_Mesquita_Mour

Você precisa adicionar as variáveis de porta ao array de portas e isso você não está fazendo. Então faça:

public static void main(String [] args){
        Porta p1 = new Porta();
        Porta p2 = new Porta();
        Porta p3 = new Porta();

        Porta [] portas = new Porta[3];

        Porta[0] = p1;
        Porta[1] = p2;
        Porta[2] = p3;
}

Só uma dúvida, nesse mesmo exercício, o enunciado não pede para que seja inserida uma referência de Porta na classe Casa?

gRoOve

Rafael Mesquita Moura:
Você precisa adicionar as variáveis de porta ao array de portas e isso você não está fazendo. Então faça:

Só uma dúvida, nesse mesmo exercício, o enunciado não pede para que seja inserida uma referência de Porta na classe Casa?


Se olhar bem, vai perceber que já há esta referência.

williamdasflores

Bom Dia Galera!!

Consegui fazer aqui.
Eu não estava entendendo como eu inseria porta na casa. Mas consegui.

Obrigado a todos!

public class Main {
    public static void main(String args[])
    {
         Porta p1 = new Porta();
         Porta p2 = new Porta();
         Porta p3 = new Porta();
         Casa c1 = new Casa();

          c1.p1[0] = p1;
          c1.p1[1] = p2;
          c1.p1[2] = p3;

          p1.Fecha();
          p2.Fecha();
          p3.Fecha();

          c1.QuantidadePortasAbertas();
    }

[RESOLVIDO]

F
adriano_si:
Cara... só pra nos facilitar a vida, coloque seu código entre as tags CODE...

Salve salve mestres do JAVA.
Gostaris de saber como posso adaptar meu codigo em vector para arrayList
Abaixo o meu codigo
Por hora gradeço a oportunidade!

private void confererepeticao() {
        //PROCURANDO SE HA UM LOGIN IGUAL AO DIGITADO NO FORMULARIO
        sql = "select logUsuario from login ";
     
        banco.conecta();
        banco.consulta(sql);
        try {

            while (banco.msql.next()) {

//adicionando os nomes do usuarios em um vetor
                vetor.add(banco.msql.getString("logUsuario"));

            }
            for (int i = 0; i < vetor.size(); i++) {

                testa_usuario = vetor.get(i); 

//comparando se o nome do formulario é igual à algum nome na base de dados.

                if (testa_usuario.equals(usuario)) {

                    loginIgual = 2;

//redireciona para uma Jsp "x"

                } else {

                    loginIgual = 1;
//redireciona para uma Jsp "y"
                }
            }
        } catch (Exception e) {
        }
    }
williamdasflores

Cara…cria um tópico acho mais fácil.
Abraços

ViniGodoy

Salve salve mestres do JAVA.
Gostaris de saber como posso adaptar meu codigo em vector para arrayList
Abaixo o meu codigo

Crie seus próprios tópicos para suas dúvidas.

Mas já respondendo, troque a declaração de:

Vector<String> vetor = new Vector<String>();

Para:

List<String> vetor = new ArrayList<String>();
Criado 6 de março de 2011
Ultima resposta 9 de mar. de 2011
Respostas 12
Participantes 6