Considere as seguintes afirmações sobre Programação Orientada a Objetos: I. Uma classe é um modelo para criar objetos em Java. II. Um objeto é uma instância específica de uma classe. III. Todos os objetos de uma classe devem compartilhar o mesmo estado e comportamento. IV. Um construtor padrão é fornecido automaticamente se nenhum construtor é explicitamente definido na classe. Das afirmações acima, quais estão corretas?
Questão
Considere as seguintes afirmações sobre Programação Orientada a Objetos:
I. Uma classe é um modelo para criar objetos em Java.
II. Um objeto é uma instância específica de uma classe.
III. Todos os objetos de uma classe devem compartilhar o mesmo estado e comportamento.
IV. Um construtor padrão é fornecido automaticamente se nenhum construtor é explicitamente definido na classe.
Das afirmações acima, quais estão corretas?
Alternativas
a) Todas as afirmativas estão corretas.
b) III e IV.
c) I, II e III.
d) I e II.
e) I, II e IV.
Explicação
Vamos analisar cada afirmação:
I. Uma classe é um modelo para criar objetos em Java. Correta. Em POO, a classe define a estrutura (atributos) e os comportamentos (métodos) que os objetos daquela classe poderão ter.
II. Um objeto é uma instância específica de uma classe. Correta. Um objeto é a concretização de uma classe, criado em tempo de execução, com seus próprios valores de atributos.
III. Todos os objetos de uma classe devem compartilhar o mesmo estado e comportamento. Incorreta. Eles compartilham o mesmo comportamento (mesmos métodos definidos na classe), mas não o mesmo estado: cada objeto pode ter valores diferentes em seus atributos (estado próprio). Logo, a afirmação como está (“mesmo estado e comportamento”) é falsa.
IV. Um construtor padrão é fornecido automaticamente se nenhum construtor é explicitamente definido na classe.
Correta. Em Java, se você não declarar nenhum construtor, o compilador fornece um construtor sem argumentos (default/no-arg) que chama o super().
Portanto, estão corretas I, II e IV.
Alternativa correta: (e).