Pular para o conteúdo

Serviço de Seleção do Pessoal da Marinha · Marinha do Brasil 2023

Questão 33 — Programação de Computadores: Java — Membros Estáticos e Construtores

Programação de Computadores Java — Membros Estáticos e Construtores

Serviço de Seleção do Pessoal da Marinha 2023

Marinha do Brasil · Corpo Auxiliar de Praças (CP-CAP) — Processamento de Dados · Caderno Amarela

Gabarito disponível

Analise o código abaixo escrito na linguagem JAVA e assinale a opção que apresenta corretamente a saída do programa.

public class Contador
{
private static int cont;
public Contador()
{
++cont;
}
public static void main (String[] args)
{
Contador x, y;
x = new Contador();
y = x;
System.out.println(cont);
}
}
Selecione uma alternativa

Resolução comentada

A variável estática é incrementada uma vez, pois só há um new; a saída é 1.

cont é static e compartilhada pela classe. Apenas um objeto é criado, com x = new Contador(), e o construtor incrementa cont para 1. A atribuição y = x apenas copia a referência e não chama o construtor. A saída é 1.

Análise das alternativas

A) 0 ignoraria o incremento do construtor. C) 2 supõe que y = x criaria outro objeto. D) Um método static pode acessar um membro static, então não há erro de compilação. E) Não há erro em tempo de execução.

Referência: Deitel & Deitel, Java: Como Programar (membros static).

Resolução comentada do VaiConcursos.

Ver gabarito

Gabarito: B

Fonte: Gabarito preliminar: Gabarito final CP-CAP 2023 — página 10