SóProvas


ID
459286
Banca
FCC
Órgão
INFRAERO
Ano
2011
Provas
Disciplina
Engenharia de Software
Assuntos

Sobre orientação a objetos, é correto afirmar:

Alternativas
Comentários
  • Uma classe é o projeto do objeto. Ela informa à máquina virtual como criar um objeto de um tipo específico. Cada objeto criado a partir da classe terá os mesmos valores para as variáveis de instância da classe.

    Um relacionamento de herança significa que a superclasse subclasse herdará as variáveis de instância e métodos da subclasse superclasse.

    Uma interface é uma classe 100% abstrata, ou seja, uma classe que não pode ser instanciada.
    Correto

    Os objetos têm seu estado definido pelos métodos nas variáveis de instância e seu comportamento definido nas variáveis de instância pelos métodos.

    A principal regra prática do encapsulamento é marcar as variáveis de instância como públicas privadas e fornecer métodos de captura e configuração privados públicos.
  • Letra a: incorreta. Não é possível afirmar que cada objeto criado a partir da classe terá os mesmos valores para as variáveis de instancia da classe. Por exemplo: caso exista um construtor tem a função de inicializar uma determinada variável de instancia, podemos imaginar que nem todo o atributo nome da classe pessoa vai ser sempre João.

    Letra b: incorreta. Um relacionamento de herança significa que a subclasse (filha) herdará da superclasse(pai).

    Letra c: Correta. Uma interface nada mais é que uma classe 100% abstrata, ou seja, todos os seus métodos são abstratos.

    Letra d: incorreta. os conceitos foram invertidos, os objetos tem seu estado definido pelas variáveis de instancia e seu comportamento definido pelos métodos.

    Letra e: incorreta. a principal regra do encapsulamento é marcar as variáveis de instancia como privadas para que só possam ser acessadas dentro da classe e os métodos como públicos para que possam acessar as variáveis privadas.

  • Sobre orientação a objetos, é correto afirmar: 
     
     a) Uma classe é o projeto do objeto. Ela informa à máquina virtual como criar um objeto de um tipo específico. Cada objeto criado a partir da classe terá os mesmos valores para as variáveis de instância da classe. (Cada objeto terá seu proprio valor, exceto as variaveis estejam estaticas)
     
     b) Um relacionamento de herança significa que a superclasse herdará as variáveis de instância e métodos da subclasse. (Quem Herda é a subclasse)
     
     c) Uma interface é uma classe 100% abstrata, ou seja, uma classe que não pode ser instanciada.
     
     d) Os objetos têm seu estado definido pelos métodos e seu comportamento definido nas variáveis de instância. (Os estados são definidos pelas variaveis e os comportamentos pelos metodos)
     
     e) A principal regra prática do encapsulamento é marcar as variáveis de instância como públicas e fornecer métodos de captura e configuração privados. (Variaveis de instancia privada e seus metodos publicos)
  • Questão que cabe recurso, uma vez que a alternativa C está muito mal formulada.

    Vale lembrar o conceito de classe abstrata: uma classe que pode conter métodos não implementados, apenas definições destes, e também pode conter métodos implementados. 

    Como ela pode conter métodos que estão apenas definidos, qualquer classe abstrata não pode ser instanciada. Neste rumo, uma classe 100% abstrata seria uma classe que contém somente métodos abstratos e não uma classe que não pode ser instanciada como diz a alternativa C.

    O correto seria: "Uma interface é uma classe 100% abstrata, ou seja, uma classe que contém apenas métodos abstratos"

  • Eu acredito que assinaturas das interfaces são abstratas se não forem especificadas o tipo, caracterizando uma classe 100% abstrata, pois a especificação pode ser implícita ou explícita, mas e se o tipo for especificado como público, a interface deixaria de ser 100% abstrata, não?

  • Achei estranho esse 100% aí de afirmação.

    Interfaces podem ter atributos? Até onde eu li era assinatura de métodos

    Classe abstrata em um relacionamento de herança pode ter atributos e métodos que vão ser herdados nas suas classes bases.

    Se alguém souber me dizer que interface pode ter atributos fico agradecido.

    Vivendo e aprendendo. 

  • Acredito que a letra C ao usar o termo "abstrata" não está se referindo ao conceito de Classe Abstrata (Análise OO), pois na OO não existe classe "meio abstrata", Ou é ou não é abstrata. Logo, concluo que o termo "abstrata" foi usado no sentido geral do português para informar que não é algo concreto. Acertei por esse raciocínio.

  • a)  objeto e instância da classe sao a mesma coisa

    b) em herança, subclasse herda da superclasse

    c) ok

    d) métodos == comportamento. variáveis == estado.

    e)  encapsulamento -> variaveis privadas e metodos de acesso publicos (getters & setters)

  • Uma interface geralmente contêm pelo menos um método abstrato (ou seja, sem corpo) e não se pode criar uma instância dela. Questão mal formulada em falar que ele é 100% abstrata, ela pode ser 100% abstrata.