1
resposta

Duvida sobre Arry

Modifique seu código para representar esse novo cenário, conforme instruções a seguir: a) A associação deve ser implementada com um array convencional; b) Acrescente um método “void adicionar (Carro carro)” à classe que jugar apropriado, adicionando o carro ao array; c) Acrescente um método “void remover (Carro carro)” à classe que jugar apropriado, retirando o carro do array; d) Acrescente um método sobrecarregado “void remover (String pla)” à classe que jugar apropriado, retirando o carro com aquela placa do array; e) Acrescente um método “Carro pesquisar (String pla)” à classe que jugar apropriado, o qual vai procurar o carro com aquela placa no array e retorná-lo ao encontrar, retornando nulo caso contrário. f) Acrescente um método “void listar ()” à classe que jugar apropriado, o qual vai imprimir todos os dados de todos carros do array. OBS: Nos casos de remoção, atribua nulo à célula do array.


public class Pessoa {
    private String nome;
    private String endereco;
    private String telefone;
    private int idade; 

    int numCarros=0; 
    private Carro[] carros = new Carro[5];

    public void adicionarCarro(Carro c) {
        carros[numCarros]=c;
        numCarros++;
    }
    public void removerCarro(String c){
          for(int i=0; i < carros.length; i++){

              if(carros[i].getModelo()==c){
                  carros[i]=null;
                  return;
              }
            }
              return;
          }
    public void pesquisarCarro(String pla) {
        for( Carro p :carros) {

        }
    }
    void listar() {
         for (int i=0; i < carros.length; i++) {
             System.out.println(carros[i]);

         }
    }
    public void removerPlaca(String pla){
          for(int i=0; i < carros.length; i++){

              if(carros[i].getPlaca()==pla){
                  carros[i]=null;
                  return;
              }
            }
              return;
          }



    public  void setNome (String nom) {
        nome=nom;
    }
    public String getNome() {
        return nome;

    }

    public void setEndereco(String e) {
        endereco=e;
    }
    public String getEndereco() {
        return endereco;
    }

    public void setTelefone(String t) {
        telefone=t;
    }
    public String getTelefone() {
        return telefone;
    }

    public void setIdade(int id) {
        idade=id;
    }
    public int getIdade() {
        return idade;
    }

    Pessoa(){

    }

    Pessoa(String n, int i){
        nome=n;
        idade=i;

    }
    Pessoa(String n, String end, String tel, int i){
        nome=n;
        endereco=end;
        telefone=tel;
        idade=i;
    }

    void mostrar() {
        System.out.println("Nome: " + nome);
        System.out.println("Endereço: " + endereco);
        System.out.println("Telefone: " + telefone);
        System.out.println("Idade: " + idade);



      }
    }

public class TestePessoa {

public static void main(String[] args) {
    // Encapsulando
    Pessoa p = new Pessoa();


    /*Pessoa p2= new Pessoa("Livia", 19);
    Pessoa p3 = new Pessoa ("Livia", "Rua x","255648",19);

    p2.mostrar();
    p3.mostrar();

    p.setNome("Ana");
    p.setEndereco("Rua N");
    p.setTelefone("445454");
    p.setIdade(22);

    String n = p.getNome();
    System.out.println(n);
    String e = p.getEndereco();
    System.out.println(n);
    String t = p.getTelefone();
    System.out.println(t);
    int i = p.getIdade();
    System.out.println(i);
    p.mostrar();*/

}

}

`

public class Carro { ////Encapsulando private String modelo; private String placa; private int ano; private double valor;

public void setModelo(String m) {
    modelo=m;
}
public String getModelo() {
    return modelo;
}
public void setPlaca(String p) {
    placa=p;
}
public String getPlaca() {
    return placa;
}
public void setAno(int a) {
    ano=a;
}
public int getAno(){
    return ano;
}
public void setValor(double v) {
    valor=v;
}
public double getValor() {
    return valor;
}
Carro(){

}
Carro(String mod, String pla){
    modelo=mod;
    placa=pla;
}
Carro(String mod, String pla, int a, int val){
    modelo=mod;
    placa=pla;
    ano=a;
    valor=val;
}

public void aplicarDesconto(double porcentagem ) {
     valor = valor * (100-porcentagem)/100;     
     }    

void exibir() {
    System.out.println("Modelo: " +modelo );
    System.out.println("Placa: " + placa);
    System.out.println("Ano: " +ano);
    System.out.println("Valor: " + valor);
}

}

Esse código esta correto de acordo com a questão?

1 resposta

Oi Livia, tudo bom?

Acho que ficou faltando o método toString na classe Carro. Já que a gente ta chamando System.out.println no método listar:

 void listar() {
         for (int i=0; i < carros.length; i++) {
             System.out.println(carros[i]);
         }
    }

Ou, você também pode chamar o exibir do Carro:

 void listar() {
         for (int i=0; i < carros.length; i++) {
             System.out.println(carros[i].exibir());
         }
    }

Caso contrario, o que será impresso no seu terminal será a referência de cada instancia de Carro dentro do array =)

Mas, tirando isso, acho que está compativel com o enunciado que você compartilhou.

Uma dica interessante que eu achei meio estranho nesse enunciado é o nome dos parametros. Por exemplo o construtor:

Carro(String mod, String pla, int a, int val){...}

Aqui o enunciado pede para que o nome do parametro no construtor seja mod, pla, etc. O ideal em um código real seria utilizar as palavras completas modelo, placa, etc.

Isso porque a palavra completa não deixaria espaço para interpretação errônea do código por qualquer outra pessoa descontextualizada. Evitando a necessidade de documentações.

Abraço!