Questão de Programação — Programação Orientada a Objetos — Quadrix 2025
- Código
- qg594762
- Banca
- Quadrix
- Órgão
- CFBio
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Sistemas
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: C — CERTO. Em JavaScript, um método como speak() que representa o comportamento de um objeto deve ser declarado como uma função regular dentro da classe e, para ser chamado corretamente, deve ser referenciado pelo objeto instanciado (por exemplo, meuObjeto.speak()). Essa é a forma padrão de definir e invocar métodos em classes JavaScript, conforme o modelo de orientação a objetos da linguagem.
Na programação orientada a objetos, uma classe é o molde que define atributos (estado) e métodos (comportamento) dos objetos. O método é uma função que pertence à classe e descreve uma ação que o objeto pode executar. Em JavaScript, desde o ES6 (ECMAScript 2015), as classes foram introduzidas como açúcar sintático sobre o modelo de protótipos, e a sintaxe para declarar um método dentro de uma classe é exatamente a de uma função regular, sem a palavra-chave function e sem os dois pontos usados em objetos literais.
Por exemplo, para representar um animal que emite som, poderíamos ter:
class Animal {
speak() {
console.log('Som genérico');
}
}
const animal = new Animal();
animal.speak(); // 'Som genérico'Aqui, speak() é declarado como uma função regular dentro da classe Animal. Para chamá-lo, é necessário instanciar a classe com new Animal() e então referenciar o método através do objeto instanciado: animal.speak(). Essa é a forma correta e padrão de se trabalhar com métodos em JavaScript.
A banca explora a confusão entre a declaração de métodos em classes e a declaração de funções em objetos literais, ou ainda a ideia de que métodos poderiam ser chamados diretamente pela classe, sem instância. Em JavaScript, métodos de instância (como speak()) só podem ser chamados por um objeto instanciado, a menos que sejam métodos estáticos, que são chamados diretamente pela classe. A distinção entre método de instância e método estático é o ponto central que separa a afirmação correta da incorreta.
A afirmação está correta. O método speak() deve ser declarado como uma função regular dentro da classe, e para ser chamado corretamente, deve ser referenciado pelo objeto instanciado. Isso é exatamente o que o enunciado descreve. Em JavaScript, a sintaxe para declarar um método em uma classe é:
class Animal {
speak() {
// corpo do método
}
}E a chamada correta é feita através de uma instância:
const animal = new Animal();
animal.speak();Se o método fosse declarado como estático (com a palavra-chave static), ele seria chamado diretamente pela classe (Animal.speak()), mas o enunciado fala de um método que representa o comportamento de um objeto, o que caracteriza um método de instância. Portanto, a declaração como função regular e a chamada pelo objeto instanciado estão corretas.
Para diferenciar método de instância de método estático em JavaScript, lembre-se: método de instância é chamado pelo objeto (objeto.metodo()), enquanto método estático é chamado pela classe (Classe.metodo()). Na prova, se o enunciado falar em "comportamento de um objeto", quase sempre será método de instância.
Gabarito: C — CERTO.
Link permanente: /questoes/qg594762