SóProvas


ID
2649367
Banca
CESPE / CEBRASPE
Órgão
STJ
Ano
2018
Provas
Disciplina
Programação
Assuntos

Julgue o item que se segue, a respeito de EJB, Clean Code, desenvolvimento orientado a testes, lógica de programação e paradigmas de programação.


Em relação ao trecho de código a seguir, que implementa parte de uma lista encadeada em Java, o método m1, quando instanciado de forma correta, gera como resultado o somatório dos valores armazenados nos nós da lista encadeada.


public class Lista {

private Lista proxima;

private int elemento;


public int m1()

{

int x;

soma = this.elemento + this.proxima.m1();

return x;

}

}

Alternativas
Comentários
  • ERRADO

    Segundo meus cáculos serão gerados alguns erros, o matador: X está sendo retornado sem nada.

  • soma nem tem tipo declarado

  • Uma classe pode ter ela mesma como atributo? 

  • Jose Filho, sim. Na verdade, objeto é uma variável e só é objeto após o new, ou seja, digamos que é uma variável que aponta para um objeto. Você pode perceber isso em herança. Cliente cliente = new Pessoa(); é claro que essa construção dá certos problemas, principalmente, se você chamar um método da classe cliente cliente.getNome() porque você só está com uma variável do tipo Cliente apontando para um objeto do tipo Pessoa.

     

    Concurseiro TI, não dá erro em retornar x porque um inteiro é iniciado implicitamente com 0 e mesmo que não fosse inicializado com 0, no mínimo retornaria vazio. Obs, não sei se retornaria null já que é um inteiro.

     

    Um dos demais erros da questão é que x não contém nenhuma operação, inclusive a de soma, como diz na questão.

  • x não foi inicializado nem soma tem tipo declarado

  • public class Lista {

    private Lista proxima;

    private int elemento; //tipo primitivo valor padrão é 0..

    public int m1(){

    int x; // tipo primitivo valor padrão é 0.

    //soma não foi declarada.

    soma = this.elemento + this.proxima.m1();

    return x; //retorna zero;

    }

    }

    Data Type Default Value (for fields)

    byte - 0

    short - 0

    int - 0

    long - 0L

    float - 0.0f

    double - 0.0d

    char '- \u0000'

    String - (or any object) null

    boolean - false