Questão nº 35
Questão de Tecnologia da Informação · FCC TRT-11 2017 (nº 35)
FCC2017Técnico Judiciário – Área Apoio Especializado – Especialidade: Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Bver comentário ↓
Considere a classe Java abaixo.
```java
public class Processo {
private String numeroProcesso;
}
```
Um Técnico especializado em TI afirma, corretamente, que:
- Apara incluir um valor no atributo `numeroProcesso` através de um objeto dessa classe será necessário criar um método privado `getNumeroProcesso`.
- Bpoderão ser incluídos nessa classe um construtor que não recebe parâmetros e um construtor que recebe como parâmetro o número do processo. (alternativa correta)
- Ca instrução `Processo p = new Processo("10453");` instancia um objeto dessa classe utilizando o construtor padrão vazio.
- Dpara permitir encapsulamento, os novos atributos e métodos a serem incluídos nessa classe terão que ser privados.
- Enão será possível instanciar um objeto dessa classe, pois ela não tem construtor.
Resposta comentada
Gabarito Alternativa B
Construtores são métodos especiais que inicializam um objeto quando ele é criado. Se você não criar nenhum construtor, Java automaticamente fornece um construtor padrão sem parâmetros.
- (A) Incorreta: Um método
getNumeroProcessoé usado para obter (ler) o valor do atributo, não para incluir (definir) um valor. Para incluir um valor, seria necessário um métodosetNumeroProcesso, que geralmente é público, não privado. - (B) Correta: É perfeitamente possível e comum ter múltiplos construtores em uma classe, desde que eles tenham listas de parâmetros diferentes (isso é chamado de sobrecarga de construtores). Assim, pode-se ter um
Processo()e umProcesso(String numeroProcesso). - (C) Incorreta: A instrução
new Processo("10453");tenta chamar um construtor que recebe um parâmetro do tipoString. O construtor padrão vazio (que Java fornece automaticamente se nenhum outro for definido) não aceita parâmetros, então essa instrução causaria um erro de compilação na classe fornecida. A armadilha aqui é confundir o construtor padrão (sempre sem parâmetros) com um construtor que aceita argumentos. - (D) Incorreta: Para o encapsulamento, os atributos (dados) são geralmente privados, mas os métodos que interagem com esses atributos (como getters e setters, ou métodos de lógica de negócio) são frequentemente públicos para permitir que outras partes do programa usem o objeto. Tornar todos os métodos privados tornaria a classe inútil externamente.
- (E) Incorreta: Se nenhum construtor for explicitamente definido em uma classe, Java automaticamente fornece um construtor padrão sem argumentos. Portanto, seria possível instanciar um objeto usando
Processo p = new Processo();.
Fonte: FCC TRT-11 2017 Técnico Judiciário – Área Apoio Especializado – Especialidade: Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.