SóProvas



Questões de Orientação a Objetos


ID
2323
Banca
NCE-UFRJ
Órgão
TRE-RJ
Ano
2001
Provas
Disciplina
Engenharia de Software
Assuntos

O conceito de polimorfismo em Orientação a Objetos implica:

Alternativas
Comentários
  • Suponha a seguinte classe escrita em Java:

    public abstract class OperacaoMatematica {
    public abstract double calcular(double x, double y);
    }

    Esta é uma classe abstrata que representa qualquer operação matemática. Podemos imaginar diversas operações que se encaixam na sua interface, como soma, subtração, multiplicação ou divisão, entre outras. Note que, mesmo que a natureza do cálculo mude, a semântica do método calcular não muda, ou seja, ele sempre calculará o resultado da operação matemática que está sendo trabalhada.

    Definamos então, duas subclasses, Soma e Subtracao, que implementam a classe OperacaoMatematica:

    public class Soma extends OperacaoMatematica {
    public double calcular(double x, double y) {
    return x+y;
    }
    }

    public class Subtracao extends OperacaoMatematica {
    public double calcular(double x, double y) {
    return x-y;
    }
    }

    O seguinte trecho de código demonstra o uso do polimorfismo:

    public class Contas {
    public static void mostrarCalculo(OperacaoMatematica operacao, double x, double y) {
    system.out.println("O resultado é: " + operacao.calcular(x, y));
    }

    public static void main(String args[]) {
    //Primeiro calculamos uma soma
    Contas.mostrarCalculo(new Soma(), 5, 5); //Imprime o resultado é: 10
    Contas.mostrarCalculo(new Subtracao(), 5, 5); //Imprime o resultado é: 0
    }
    }

    Note que, embora o método calcular tenha sido chamado duas vezes no interior de mostrarCalculo, o comportamento apresentado variou de acordo com a classe ao qual ele representava no momento. É comum definir sobrecarga de métodos ou simplesmente sobrecarga como uma forma de polimorfismo embora esta definição deixe lacunas conceituais.
  • Essa aula é do Microsoft Office 2010, não corresponde ao título do vídeo "Libre Office Writer".

  • Vídeo repetido! :(

  • Vídeo repetido! :(

  • Olá administradores do QC, o vídeo em questão não corresponde ao vídeo disponibilizado.
    Grato pela atenção!

  • Não é a aula do Writer.

  •  b) trabalhar com instâncias de classes diferentes, de forma unificada, via uma abstração;

  • b)

    Ha uma extensao da herança da hierarquia de classes na qual mais métodos com distintas interfaces hierárquicas sao chamados primeiro em runtime; é neste momento que um dos metodos sera usado consoante o objeto.

  • Polimorfismo permite a manipulação de instâncias de classes que herdam de uma mesma classe ancestral de forma unificada: Podemos escrever métodos que recebam instancias de uma classe C, e os mesmos métodos serão capazes de processar instancias de qualquer classe que herde a classe C, já que qualquer classe que herde C é-um-tipo-de-C. Questão retirado do Livro: Introdução à programação orientada a objetos usando java 2ª edição


ID
5128
Banca
CESGRANRIO
Órgão
EPE
Ano
2007
Provas
Disciplina
Engenharia de Software
Assuntos

Para alterar o paradigma de modelagem numa organização de análise estruturada para análise orientada a objeto, é necessário que a linguagem de programação escolhida possua suporte direto:

Alternativas
Comentários
  • Extensões de Ward e Mellor são usadas para extender a diagramação de um DFD para sistemas de tempo real.

    As extensões de Hatley e Pirbhai também são utilizadas na Modelagem Funcional e Fluxo de Informações em DFDs.

  • A resposta certa é a letra D.
    A POO foi criada para tentar aproximar o mundo real do mundo virtual: a idéia fundamental é tentar simular o mundo real. Na POO o programador é responsável por moldar o mundo dos objetos, e explicar para estes objetos como eles devem interagir entre si. Os objetos "conversam" uns com os outros através do envio de mensagens, e o papel principal do programador é especificar quais serão as mensagens que cada objeto pode receber, e também qual a ação que aquele objeto deve realizar ao receber aquela mensagem em específico. A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos.

ID
5131
Banca
CESGRANRIO
Órgão
EPE
Ano
2007
Provas
Disciplina
Engenharia de Software
Assuntos

Numa linguagem de programação orientada a objetos é importante restringir a visibilidade de alguns atributos para garantir o conceito de:

Alternativas
Comentários
  • Classe é uma estrutura que abstrai um conjunto de objetos com características similares.
    Encapsulamento vem de encapsular, que em programação orientada a objetos significa separar o programa em partes, o mais isoladas possível. A idéia é tornar o software mais flexível, fácil de modificar e de criar novas implementações

    Herança é um princípio de orientação a objetos , que permite que classes compartilhem atributos e métodos , através de "heranças". Ela é usada na intenção de reaproveitar código ou comportamento generalizado ou especializar operações ou atributos.
    Instanciação é criar um objeto de uma determinada classe, chamando o construtor da mesma.
    Polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, é possível tratar vários tipos de maneira homogênea (através da interface do tipo mais abstrato).
  • Correto, através da herança podemos dimensionar o nível de permissões e acesso a um atribulo

    A) Classe: faz parte de uma estrutura da orientação a objetos, uma classe é uma descrição que abstrai um conjunto de objetos com características similares. Mais formalmente é um conceito que encapsula abstrações de dados e procedimentos que descrevem o conteúdo e o comportamento de entidades do mundo real, representadas por objetos. De outra forma, uma classe pode ser definida como uma descrição das propriedades ou estados possíveis de um conjunto de objetos, bem como os comportamentos ou ações aplicáveis a estes mesmos objetos.

    B) Encapsulamento: Na programação orientada a objetos, o encapsulamento se refere ao agrupamento de dados com os métodos que operam nesses dados ou à restrição do acesso direto a alguns dos componentes de um objeto.

    C) Herança: é um princípio de orientação a objetos, que permite que classes compartilhem atributos e métodos, através de heranças. Ela é usada na intenção de reaproveitar código ou comportamento generalizado ou especializar operações ou atributos. O conceito de herança de várias classes é conhecido como herança múltipla. A exemplo, pode-se observar as classes aluno e professor, onde ambas possuem atributos como nome, endereço e telefone. Nesse caso pode-se criar uma nova classe chamada pessoa, que contenha as semelhanças entre as duas classes, fazendo com que aluno e professor herdem as características de pessoa, desta maneira pode- se dizer que aluno e professor são subclasses de pessoa. Também podemos dizer que uma classe pode ser abstrata (abstract) ou seja ela não pode ter uma instância, ela apenas empresta seus atributos e métodos como molde para novas classes.

    D) Instanciação: Uma instância de uma classe é um novo objeto criado dessa classe, com o operador new, instanciar uma classe é criar um novo objeto do mesmo tipo dessa classe. Uma classe somente poderá ser utilizada após ser instanciada.

    E) Polimorfismo: Na programação orientada a objetos, o polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, é possível tratar vários tipos de maneira homogênea. O termo polimorfismo é originário do grego e significa muitas formas.

    Resposta: C


ID
5134
Banca
CESGRANRIO
Órgão
EPE
Ano
2007
Provas
Disciplina
Engenharia de Software
Assuntos

Que característica NÃO é fundamental em uma linguagem de programação orientada a objeto?

Alternativas
Comentários
  • Nem todas as linguagens de programação suportam herança múltipla.
  • Para resolver essa questão, bastava pensar que Java é uma linguagem totalmente orientada a objetos e que não suporta herança multipla...

  • Leonardo, java não é totalmente orientada a objetos ( http://www.guj.com.br/java/127885-java-e-totalmente-orientado-a-objetos ) por conta dos tipos primitivos. 
  • Essa questão é relativa, não pode ser afirmada com essa precisão, generalizando a Orientação a Objetos, pois linguagens como C++ utilizam herança múltipla e é sim um fundamento utilizado.

    Estaria correto se fosse especificado "NÃO é fundamental da linguagem JAVA, DELPHI", por exemplo!
  • Questão ridícula e mal elaborada. Todos os itens são caractrísticas relevantes da orientação a objeto. Não existe livro algum no universo que fale sobre a hierarquia de importância de tais conceitos, portanto questão extremamente subjetiva. Um lixo...
  • Se herança múltipla fosse fundamental para linguagem de programação orientada a objeto, .Net e Java (as linguagens mais usadas no mercado) deveriam dar suporte à isso. Porém, não é o que ocorre, pois herança múltipla pode ser substituída por interfaces, que é melhor de lidar, portanto, questão correta, letra C.

  • Herança multipla nao é eseencial porque causa o chamado problema de herdar metodos com mesmo nome de classes diferentes. Por isso é necessario usar interfaces, as quais podem ser implementadas quantas forem necessarias em java

  •  questão da herança varia bastante de linguagem para linguagem. Em algumas delas, como C++, há a questão da herança múltipla. Isso, essencialmente, significa que o objeto pode herdar características de vários “ancestrais” ao mesmo tempo diretamente. Em outras palavras, cada objeto pode possuir quantos pais for necessário. Devido a problemas, essa prática não foi difundida em linguagens mais modernas, que utilizam outras artimanhas para criar uma espécie de herança múltipla.


ID
5785
Banca
CESGRANRIO
Órgão
EPE
Ano
2006
Provas
Disciplina
Engenharia de Software
Assuntos

Relacione o conceito de Orientação a Objetos à sua respectiva descrição.

Conceito
I - Agregação
II - Coesão
III - Encapsulamento
IV - Herança

Descrição
(P) É uma medida que indica até que ponto as partes de um objeto admitem a finalidade única do objeto.
(Q) Tipo de associação que indica que um dos objetos participantes precisa desempenhar o papel de controlador do outro objeto.
(R) Relacionamento entre classes que permite a uma classe especializada (subclasse) ter acesso às características de uma classe generalizada (superclasse).

A relação correta é:

Alternativas

ID
7303
Banca
IESES
Órgão
CGU
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

Analise as seguintes afirmações relativas a programação Orientada a Objetos:

I. As informações em um programa desenvolvido segundo a orientação a objetos são armazenadas, por herança, nas classes.

II. Em um programa, os objetos que precisam ser armazenados em memória não volátil são denominados objetos persistentes.

III. Na programação orientada a objetos, quando se utiliza um Banco de Dados relacional, deve-se criar métodos para mapear, em tabelas, os objetos que serão armazenados.

IV. Em uma aplicação podem existir múltiplas instâncias de uma mesma classe e estas conterão diferentes atributos de instâncias.

Estão corretos os itens:

Alternativas
Comentários
  • I. As informações em um programa desenvolvido segundo a orientação a objetos são armazenadas, por herança atributos, nas classes.
    IV. Em uma aplicação podem existir múltiplas instâncias de uma mesma classe e estas conterão diferentes os mesmos atributos de instâncias.

  • Não entendi essa questao, por favor alguem pode fornecer um comentario mais completo? Grato
  • I. As informações em um programa desenvolvido segundo a orientação a objetos são armazenadas, por herança, nas classes.
    Bom, as informações de um programa não são armazenadas pela herança nas classes. São armazenadas em banco de dados ou em atributos, variáveis nas intâncias das classes, ou nos objetos. A herança apenas leva para as subclasses os comportamentos e atributos.

    IV. Em uma aplicação podem existir múltiplas instâncias de uma mesma classe e estas conterão diferentes atributos de instâncias.
    Errado. Essas 
    instâncias conterão os mesmos atributos mas com valores possivelmente diferentes.
  • Referente ao item III

    III. Na programação orientada a objetos, quando se utiliza um Banco de Dados relacional, deve-se criar métodos para mapear, em tabelas, os objetos que serão armazenados.

    não seria Bando de Dados OO não?
  • Olá Salvio

    Você pode programar OO e usar BD Relacional para persistir dos dados. Para tal, usa-se um mapeamento objeto-relacional. Inclusive, creio que esse método seja o mais utilizado atualmente.

    Valeu!!

ID
7306
Banca
ESAF
Órgão
CGU
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

Analise as seguintes afirmações relativas à programação Orientada a Objetos:

I. O polimorfismo possibilita que o mesmo nome possa ser utilizado em diferentes métodos em uma mesma classe, desde que, por exemplo, as quantidades de parâmetros sejam diferentes.

II. Os métodos estáticos, quando executados, acessam apenas os atributos de instância da classe.

III. O uso de um mesmo nome para identificar diferentes implementações dos métodos pode ocorrer na definição de construtores.

IV. Na hierarquia de classes, a herança múltipla ocorre quando existem diversas classes imediatamente abaixo da classe em questão.

Estão corretos os itens:

Alternativas
Comentários
  • A definição dada no item I refere-se à sobrecarga e não ao Polimorfismo. Por outro lado, o fato de existirem várias classes abaixo de uma determinada classe não denota herança múltipla. Portanto, a alternativa certa é a letra B.
  • I - Esta alternativa NÃO se refere ao polimorfismo, mas SIM à sobrecarga de métodos. (Errado)

    II - Os métodos estáticos, quando executados, acessam apenas os atributos de classe (estáticos) e NÃO os atributos de instância da classe. (Errado)

    III - Esta alternativa também se refere à sobrecarga de métodos, o que pode ocorrer na definição dos Contrutores. (Certo)

    IV - A herança múltipla ocorre quando existem diversas classes imediatamente ACIMA da classe em questão. (Errado)

    Portanto esta questão seria uma boa candidata a ser anulada!

    Alguma correção?
  • Overriding and Overloading are both flavors of polymorphism.
    Overriding is a run-time binding polymorphism and Overloading is a compile-time binding polymorphism. Don't any problem item I.
    Internet is plenty of examples. Just one to show: http://www.programmersheaven.com/2/FAQ-JAVA-What-Is-Polymorphism
  • questão totalmente errada... concordo com os amigos abaixo...
  • sobrecarga é um tipo de polimorfismo
  • Exatamente, concordo com o colega abaixo.
    Sobrecarga de métodos é uma forma de se aplicar o polimorfismo.

    Questão correta.
  • É comum definir sobrecarga de métodos ou simplesmente sobrecarga como uma forma de polimorfismo (chamado de polimorfismo ad-hoc).

    Fonte:Wikipédia

  • Polimorfismo Estático: Sobrecarga (método na mesma classe, mesmo nome, diferentes parâmetros e opcionalmente diferente retorno)
    Polimorfismo Dinâmico: Sobrescrita (método na subclasse, mesmo nome, mesmo parâmetro e opcionalmente diferente retorno - segundo algumas regras do java)
  • Ninguém achou estranho ele afirmar que para que haja polimorfismo tem que ter quantidade de parâmetros diferentes? Pelo o que eu saiba para ocorrer polimorfismo pode ter a mesma quantidade de parâmetros que não tem problema... Por exemplo pai.somar(int,int) e pai.somar(string,string) é um polimorfismo na mesma classe (sobrecarga) com a mesma quantidade de parâmetros e na assertiva ele afirma que TEM que ser diferentes.
  • DanJuh,

    O item I apenas dá um exemplo, mas não afirma que TEM que ter necessariamente quantidade de parâmetros diferentes. Veja:

    item I - "..
    desde que, POR EXEMPLO, as quantidades de parâmetros sejam diferentes.."

    O item I está certinho.
  • Não há explicações para que a I esteja certa, 

    Polimorfismo ou Sobrecarga -> O polimorfismo possibilita que o mesmo nome possa ser utilizado em diferentes métodos
    Sobrecarga -> 
    em uma mesma classe, desde que, por exemplo, as quantidades de parâmetros sejam diferentes.

    Portanto a questão refere-se a Sobrecarga. Chamadas polimórficas não acontecem em uma mesma classe, e sim por herança, associação......

ID
7309
Banca
ESAF
Órgão
CGU
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

Na programação Orientada a Objetos

Alternativas
Comentários
  • classe nao é objeto, classe é a descrição de um tipo de dados e os métodos e operações que um objeto instanciado pode sofrer .
  • Realmente, concordo com o comentário anterior. Classes não são tipos de objetos. Seria mais interessante utilizar a palavra "modelos" ao invés de tipos. Embora "tipo" possa remeter à idéia de tipagem, também dá a entender que é um dos tipos de objetos. Se deixa margem à dúvida, não deveria ser considerada a questão correta.
  • Classes são tipos de objetos sim. A afirmação está correta. Por exemplo: Aluno a = new Aluno();
    O objeto referenciado por a é de que tipo? R.: É do tipo Aluno.
    Portanto, classes são tipos de objetos. Se você também trocar o termo "objeto" por "instância", então "classes são tipos de instâncias" também é correto.
  • Nossa errei marquei a letra A errado, onde ja se viu? um serviço solicitando um construtor?haha..., mais acredito que realmente que a letra 'e' esteja correta, pois em POO quase tudo é objeto inclusive classes estáticas.


ID
8194
Banca
ESAF
Órgão
Receita Federal
Ano
2005
Provas
Disciplina
Engenharia de Software
Assuntos

Analise as seguintes afirmações relacionadas a noções básicas de programação:

I. A idéia básica do algoritmo de ordenação bubble sort é montar uma árvore com os dados a serem ordenados, percorrer esses dados pela última camada denominada folhas e, a cada passagem, comparar cada elemento da folha com o seu sucessor. Se os elementos não estão ordenados deve-se trocá-los de posição.

II. Na orientação a objetos, uma classe é uma abstração de software que pode representar algo real ou virtual. Uma classe é formada por um conjunto de propriedades (variáveis) e procedimentos (métodos).

III. Uma função é dita recursiva quando em seu código existe uma chamada a si própria, podendo utilizar os mesmos parâmetros de entrada (correndo o risco de provocar um ciclo infi nito) ou outros.

IV. Uma árvore binária é um conjunto finito de elementos que ou está vazio ou está dividido em 3 subconjuntos: um elemento chamado raiz da árvore e dois subconjuntos, cada um dos quais é, por si só, uma árvore binária, chamadas sub-árvore direita e sub-árvore esquerda. Indique a opção que contenha todas as afirmações verdadeiras.

Alternativas
Comentários
  • Não entendi o erro do ítem II.
  • Erro no Item II: abstração de entidade ou objetos e não de software. Também errei essa questão.
    Acredito também que uma classe, em resumo, representa um conjunto de objetos de um mesmo tipo, de características similares.
  • Pra mim os três itens II, III, IV estão corretos. Esse erro que foi falado abaixo poderia ter a seguinte interpretação: "abstração de software": abstração (feita através de software). Creio que essa questão deveria ser anulada. Se alguém encontrar algum outro erro no item II, por favor poste aqui.
  • Acredito que na II, o erro está no conceito que Classes são abstrações do mundo real implementadas em software, não "abstração de software.
  • Uma classe é formada por um conjunto de propriedades (variáveis). 
    Acredito que o correto seria ATRIBUTOS. 
  • Pensei o mesmo que o Vitor e o Bruno.
    Classes são abstrações do mundo real;
    As propriedades das classes são atributos e não variáveis.
    Uma classe nem sempre será formada por um conjunto de atributos e métodos. Uma classe pode conter somente atributos. Pode, inclusive, não conter atributos, nem métodos, embora não faça muito sentido criar uma classe sem métodos e atributos.
  • REPOSTA 3 ,4


ID
8200
Banca
ESAF
Órgão
Receita Federal
Ano
2005
Provas
Disciplina
Engenharia de Software
Assuntos

Na programação orientada a objetos, o encapsulamento

Alternativas
Comentários
  • a) Encapsulamento
    c) Polimorfismo
    d) Herança
  • b) herança
    e) abstração
  •  a

    Encapsulamento consiste em ocultar compoenentes do objeto que nao podem ser acessiveis aos outros do sistema. Geralmente consiste em declarar variaveis como private e usar getters & setters para acessá-los em uma classe main. e.g:

    package getters_setters;package getters_setters;

    public class Heck_hound {
        
        private String name;
        private int age;
        private String breed;

        
        public void setAge(int age) {
            this.age = age;
        }
        
        public int getAge() {
        return age;
    }
    }

    public class Main {
        public static void main(String[] args) {
            
            Heck_hound howler = new Heck_hound();
            howler.setAge(1);
            System.out.println(howler.getAge());      

        }

    }

  • Alternativa A: É a base de toda a abordagem dessa metodologia de programação e diz-se que um dado está encapsulado quando envolvido por código de forma que só é visível na rotina onde foi criado; o mesmo acontece com uma rotina, que sendo encapsulada, suas operações internas são invisíveis às outras rotinas.


ID
8203
Banca
ESAF
Órgão
Receita Federal
Ano
2005
Provas
Disciplina
Engenharia de Software
Assuntos

Classes e objetos são dois conceitos-chave da programação orientada a objetos. Com relação a estes conceitos, é correto afirmar que

Alternativas
Comentários
  • Alguém sabe o que tá errado na c ?


    c) uma classe é uma abstração de alguma coisa no domínio de um problema ou na sua implementação, refletindo a capacidade de um sistema para manter informações sobre ela, interagir com ela ou ambos.
  • Colega, parece que a definição da alternativa C seria de um OBJETO.

    c) uma classe é uma abstração de alguma coisa no domínio de um problema ou na sua implementação, refletindo a capacidade de um sistema para manter informações sobre ela, interagir com ela ou ambos.

    Esse alguma coisa seria o objeto.
  • a)As classes de programação são receitas de um objeto, aonde têm características e comportamentos, permitindo assim armazenar propriedades e métodos dentro dela. Para construir uma classe é preciso utilizar o pilar da abstração.

     

    c) um objeto é uma abstração de alguma entidade no domínio do problema ou em sua realização, refletindo a capacidade de um sistema manter informações sobre ela, interagir com ela, ou em ambos os casos.

     

    d)classe é um protótipo que define os atributos (variáveis que definem estados internos de um objeto) e métodos (tipos de serviços ou procedimentos que determinam o comportamento possível dos objetos) comuns a todos os objetos de um certo tipo.

     

    e)Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse

  • Alternativa B: Uma classe é uma descrição de um ou mais objetos por meio de um conjunto uniforme de atributos e serviços. Além disso, pode conter uma descrição de como criar novos objetos na classe.


ID
10447
Banca
ESAF
Órgão
CGU
Ano
2006
Provas
Disciplina
Engenharia de Software
Assuntos

Analise as seguintes afirmações relacionadas aos conceitos básicos relacionados a programação e Linguagens de Programação Orientadas a Objetos.

I. Na Programação Orientada a Objetos o overflow em operações aritméticas e a divisão por zero não podem ser tratados como exceções.

II. Uma vez que uma exceção é disparada o controle não pode retornar diretamente ao ponto de disparo.

III. Uma exceção termina o bloco no qual ela ocorreu.

IV. O tratamento de exceções é utilizado para tratar erros de sintaxe, isto é, erros que acontecem como resultado da compilação de um programa.

Indique a opção que contenha todas as afi rmações verdadeiras.

Alternativas
Comentários
  • I - ERRADOQualquer LINGUAGEM de programação orientada a objeto (p.exemplo, Java), possui tratamento de exceções, incluindo overflow aritmético e divisão por zero;IV - ERRADOAfirmação incorreta. Exceção são usadas unicamente para tratar problemas em tempo de execução, exceções nunca são usadas para tratar problemas de compilação ou sintaxe.
  • I. Na Programação Orientada a Objetos o overflow em operações aritméticas e a divisão por zero DEVEM ser tratados como exceções.

    II. Uma vez que uma exceção é disparada o controle não pode retornar diretamente ao ponto de disparo. correta

    III. Uma exceção termina o bloco no qual ela ocorreu. correta

    IV. O tratamento de exceções é utilizado para tratar erros de sintaxe, isto é, erros que acontecem como resultado da EXECUÇÃO um programa. (se você consegue pegar o erro na compilação, não precisará trata-lo nas exceções).


ID
10450
Banca
ESAF
Órgão
CGU
Ano
2006
Provas
Disciplina
Engenharia de Software
Assuntos

Analise as seguintes afirmações relacionadas aos conceitos básicos de Programação Orientada a Objetos.

I. Modificações de uma classe base requerem, obrigatoriamente, que as classes derivadas mudem.

II. Uma classe derivada não pode conter atributos adicionais diferentes dos existentes na sua classe base.

III. Criar uma classe derivada não afeta o código-fonte da sua classe base. A integridade de uma classe base é preservada pela herança.

IV. Uma classe derivada contém os atributos e comportamentos de sua classe base.

Indique a opção que contenha todas as afirmações verdadeiras.

Alternativas
Comentários
  • I - Caso haja uma modificação em um método private da classe base não haverá modificação alguma na classe derivada. "Obrigatoriamente" = Pegadinha. (Errado)
  • não concordo com a resposta. o Item IV a subclase pode herdar atributos e assinaturas, mas alguns comportamentos podem ser diferentes, no caso de sobrescrever o metodo. se o motodo for abstrato a subclasse vai herdar esse comportamento?

    Acredito q a resposta seria a letra "D".
  • I. Modificações de uma classe base requerem, que as classes derivadas mudem. 
    II. Uma classe derivada pode conter atributos adicionais diferentes dos existentes na sua classe base


ID
10465
Banca
ESAF
Órgão
CGU
Ano
2006
Provas
Disciplina
Engenharia de Software
Assuntos

Em algumas linguagens de Programação Orientadas a Objetos, como por exemplo o C++, ao se derivar uma classe a partir de uma classe base, a classe base pode ser herdada como public, protected ou private. Quando a derivação é do tipo public, os membros

Alternativas
Comentários
  • Quando a classe base é herdada como public, os niveis de acesso (private, protected e public) não são alterados, portanto alternativa correta 'a'.
    Vale lembrar q qdo a classe base é herdada como private, indica que tanto os membros publicos qto os protegidos serão privados na classe derivada
  • Quando uma classe é herdada utilizando-se o especificador de acesso protected, todos os membros da classe herdada que são definidos como public e protected possuirão as características de acesso do especificador protected dentro da classe derivada.

ID
11977
Banca
CESPE / CEBRASPE
Órgão
Polícia Federal
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

Considere que se deseja desenvolver um sistema para controle
de caixa de supermercado tendo como base um computador
que registra os produtos vendidos, interagindo com
dispositivos de entrada e saída tais como impressora, teclado
e leitora de código de barras. Esse sistema deve interagir
também com o operador do caixa e com um banco de dados do
estabelecimento. A partir dessas informações, julgue os itens
que se seguem.

Em uma análise orientada a objetos, é comum o uso de UML para modelar o sistema. A descrição do processo de compra de uma mercadoria do supermercado, por meio de uma seqüência de eventos entre os objetos do sistema, é realizada mediante diagramas de casos de uso em UML.

Alternativas
Comentários
  • " entre os objetos do sistema", o casos de uso antecede a criação de objetos do sistema, portanto errado
  • Isso é realizado por meio do diagrama de sequência e não de caso de uso
  • Acrescento que o objetivo dos diagramas de seqüência é descrever as comunicações necessárias entre objetos para a realização dos processos em um sistema. Neste caso a questão se encaixa perfeitamente a este conceito, ja que o diagrama de sequencia iria descrever a sequencia de eventos (torca de menssagens, funções, etc) entre os OBJETOS do sistema para realização do processo do sistema (processo de compra de uma mercadoria).

    Abraços

  • Seria incorreto dizer que a descrição do processo ocorre no diagrama de casos de uso. A descrição de um caso de uso ocorre em um modelo de caso de uso e não no diagrama em si. O diagrama apenas representa a modelagem gráfica.

    Modelo de Caso de Uso ≠ Diagrama de Caso de Uso

  •  A questão troca conceitos. Na verdade, essa "seqüência de eventos entre os objetos do sistema" é realizada por um Diagrama de Sequência. O diagrama de caso de uso faria a especificação dos casos de uso e do limite do sistema. O caso de uso em si é realizado por diagramas de interação.

  • errado-

    UML atualmente esta na versao 2.4.1 e uma das novidades é a abordagem em 4 camadas e a possibilidade de desenvolver "perfis" particulares a apartir de notacoes UML


ID
15784
Banca
CESPE / CEBRASPE
Órgão
ANATEL
Ano
2006
Provas
Disciplina
Engenharia de Software
Assuntos

Considerando a orientação a objetos, julgue os itens a seguir.

A herança entre classes e a composição de objetos possibilitam o reúso em software orientados a objetos. A herança entre classes é estabelecida em tempo de compilação. A composição é estabelecida dinamicamente em tempo de execução na medida em que objetos referenciam outros objetos.

Alternativas
Comentários
  • A herança é definida estaticamente em tempo de compilação e é simples de utilizar, uma vez que é suportada diretamente pela linguagem de programação. fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=3714
  • Nooossa! Não acredito que o gabarito dessa questão seja CERTO. Se a composição NÃO é estática, como que em MER e Diagramas de Classe podemos representar composição.

    O máximo que existe é porlimorfismo dinâmico, que se encaixaria no caso de herança.

  • Concordo plenamente contigo Tiago!

    Como você poderá integrar componentes só em tempo de execução?
  • Acredito que a questão esteja correta. A composição pode ser definida dinamicamente em tempo de execução pela obtenção de referência de objetos a outros objetos.

    A banca cometeu um pequeno deslize, visto que "na medida em que" tem sentido de causa (= porque) e o sentido desejado era de "à medida que", que tem sentido de proporção (= à proporção que).
  • Aí é que está Eduardo, na questão não existe a palavra somente. No trecho ....A composição é estabelecida dinamicamente em tempo de execução... não está restringindo a composição em tempo de compilação. Se estivesse escrito algo do tipo, ...somente em tempo de execução...aí sim concordaria contigo. Mas da forma que está escrito significa que pode ser tanto em tempo de compilação quanto em tempo de execução.

    Cara, o CESPE tem dessas coisas, costumo dizer que o português grego do CESPE me elimina mais que o conteúdo em si.


ID
15787
Banca
CESPE / CEBRASPE
Órgão
ANATEL
Ano
2006
Provas
Disciplina
Engenharia de Software
Assuntos

Considerando a orientação a objetos, julgue os itens a seguir.

Uma classe abstrata define uma interface comum às suas subclasses. Interagir com objetos via interfaces definidas em classes abstratas possibilita que os clientes dos serviços providos pelos objetos não precisem conhecer as classes desses objetos. Os clientes precisam conhecer as classes abstratas que definem as interfaces.

Alternativas
Comentários
  • o único problema da questão é que classes abstratas não geram objetos. Está errado pois deveria mencionar que são objetos de subclasses das classes abstratas!

  • Que redação mais confusa!


ID
15829
Banca
CESPE / CEBRASPE
Órgão
ANATEL
Ano
2006
Provas
Disciplina
Engenharia de Software
Assuntos

No que diz respeito à análise e ao projeto orientados a objetos, julgue os itens que se seguem.

Uma classe na análise orientada a objeto representa uma abstração que pode ser mapeada para mais de uma classe no projeto. As classes na análise podem ser fronteiras, controladoras ou entidades. Uma fronteira modela interações entre o sistema e atores, uma entidade modela apenas objetos persistentes e uma controladora só pode controlar interações entre instâncias de uma mesma classe.

Alternativas
Comentários
  • Uma controladora pode operar sobre instâncias de classes diferentes
  • Os objetos de Entidade não servem apenas para modelar objetos persistentes. Servem também para encapsular as lógicas de negócio.Objetos de Controle servem como ponte de comunicação entre objetos de Fronteira e de Entidade.<>
  •  Acho que existe também um erro ao afirmar que "As classes na análise podem ser fronteiras, controladoras ou entidades". Isso é feito na fase de projeto, não na análise

  • A classe de análise é uma classe especificada no nível de detalhe apropriado para  o workflow de Análise, o que significa que geralmente contém atributos mas não operações. [...]
    Há três tipos de classes de análise: classes de interface, classes entidades e classes de controle. [...]


    Objeto de interface é um objeto com o qual o ator interage. Se o ator for humano o objeto de interface poderá ser uma janela, página HTML, [...]. Um ator não-humano interage com objetos de interface tais como interfaces de programa de aplicação (APIs). Os objetos de interface correspondem a substantivos em textos de casos de uso. [...]


    Objeto entidade é geralmente um objeto persistente que contém informações de vida longa, como as associadas a bases de dados. O objeto entidade também pode conter dados transientes, como conteúdos de listas de janelas ou resultados de pesquisas. Os objetos de interface correspondem a substantivos em textos de casos de uso. [...]

    Objeto de controle é um objeto que incorpora lógica de aplicação. Os objetos de controle são frequentemente usados para manipular elementos como coordenação e sequência e também são úteis para cálculos envolvendo múltiplos objetos entidade.
    Os objetos de controle servem como tecido de conexão entre os objetos de interface e os objetos entidade, correspondendo a verbos em um texto de caso de uso.


    Fonte: Kendall Scott: O Processo Unificado Explicado. p.49.

  • Erradíssimo, a classe de análise é uma classe especificada no nível de detalhe apropriado para o workflow, o que significa que geralmente contém atributos mas não operações.

    Há três tipos de classes de análise: classes de interface, classes entidades e classes de controle.

    Resposta: Errado


ID
15832
Banca
CESPE / CEBRASPE
Órgão
ANATEL
Ano
2006
Provas
Disciplina
Engenharia de Software
Assuntos

No que diz respeito à análise e ao projeto orientados a objetos, julgue os itens que se seguem.

Os elementos que podem estar presentes em um modelo de projeto orientado a objetos incluem: subsistemas com suas dependências, interfaces e conteúdos; classes de projeto, incluindo classes ativas, com atributos, métodos e relacionamentos. Nas classes, os métodos podem ser especificados usando-se a sintaxe da linguagem de programação que será usada para implementá-los.

Alternativas

ID
16861
Banca
CESPE / CEBRASPE
Órgão
TRE-AL
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito da orientação a objetos, que é uma das técnicas mais
utilizadas para concepção e desenvolvimento de programas,
julgue os itens seguintes.

Uma hierarquia de classes é um mecanismo por meio do qual
as modificações nos níveis inferiores da hierarquia se
propagam de imediato para os níveis superiores.

Alternativas
Comentários
  • É o contrário.
    Modificações nos níveis superiores são propagadas para os níveis inferiores
  • Conceito de herança: Classes de Superior (Pai ou Superclasse) propagam as modificações para os níveis inferiores (Filhas ou Sub-classe). A questão está errada por dizer o contrário.
  • Gabarito Errado

    Conceito de Herança.

     

    Vamod na fé !

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
16864
Banca
CESPE / CEBRASPE
Órgão
TRE-AL
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito da orientação a objetos, que é uma das técnicas mais
utilizadas para concepção e desenvolvimento de programas,
julgue os itens seguintes.

A sobreposição (overriding) ocorre quando atributos e
operações são herdados da maneira normal por uma
subclasse, mas são modificados para atender às necessidades
específicas dessa subclasse.

Alternativas
Comentários
  • Override, é capacidade de um metodo de um subclasse definir sua propria implementação, ao inves de seguir a implementação da classe pai. isto é valido desde q o metodo tenha a mesmo assinatura.
  • fiquei em dúvida nesta questão, pois pelo encapsulamento uma atributo tem que ser restrito a sua propria classe, colocando o modificador privado nele. Desta forma outras classes e mesmo subclasses não poderiam acessá-los diretamente. Então a sobreposição não seria apenas de operações(métodos), por não ser possível acessar diretamente os atributos da super classe.

    Considerei a afirmação falsa
  • "overriding ocorre quando atributos e operações são herdados da maneira normal" normal q dizer default(padrão). na questão n é citado na sobre metodo privado.
  • Eu acho que tá errada, porque as subclasses alteram os metodos herdados e não os atributos. Na frase tem como se fossem os dois.
  • Eu marquei certo, mas dizer que atributos podem ser sobrescritos é meio foda...
  • Gabarito Certo

    Sobreposição de métodos (override) em programação orientada a objetos, é um recurso da linguagem que permite que a subclasse, rescreva uma implementação especifica de um método que já esta previsto em uma superclasse. A implementação na subclasse sobrepõe a implementação na superclasse.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
16867
Banca
CESPE / CEBRASPE
Órgão
TRE-AL
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito da orientação a objetos, que é uma das técnicas mais
utilizadas para concepção e desenvolvimento de programas,
julgue os itens seguintes.

O polimorfismo ocorre quando uma subclasse herda
atributos e operações de classes diferentes.

Alternativas
Comentários
  • O que está sendo descrito é a herança múltipla
    Polimorfismo (muitas formas) consiste em:
    - objetos diferentes se comportare de maneiras distintas, mesmo possuindo o mesmo método.
    - Um mesmo objeto ter várias implementações para métodos com o mesmo nome (sobrecarga)
  • errado- o conceito descrito é o de herança multipla, o qual em Java é realizado pela implementação de varias interfaces. 

  • Gabarito Errado

    Na programação orientada a objetos, o polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, é possível tratar vários tipos de maneira homogênea (através da interface do tipo mais abstrato). O termo polimorfismo é originário do grego e significa "muitas formas" (poli = muitas, morphos = formas).

    O polimorfismo é caracterizado quando duas ou mais classes distintas têm métodos de mesmo nome, de forma que uma função possa utilizar um objeto de qualquer uma das classes polimórficas, sem necessidade de tratar de forma diferenciada conforme a classe do objeto.

    Uma das formas de implementar o polimorfismo é através de uma classe abstrata, cujos métodos são declarados mas não são definidos, e através de classes que herdam os métodos desta classe abstrata.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Errado.

    Pessoal, apenas uma correçãozinha...

    Herdar de classes diferentes não quer dizer necessariamente 'herança múltipla'.

    Há tbém a 'herança linear ou transitiva'...

    Ademais, o polimorfismo está ligado apenas aos métodos/comportamentos... e não está associado aos atributos de uma classe.


ID
16870
Banca
CESPE / CEBRASPE
Órgão
TRE-AL
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito da orientação a objetos, que é uma das técnicas mais
utilizadas para concepção e desenvolvimento de programas,
julgue os itens seguintes.

A múltipla herança possibilita que diferentes operações
tenham o mesmo nome.

Alternativas
Comentários
  • O que possibilita que diferentes operações tenham o mesmo nome é a sobrecarga, em que o nome do método é mantido, mas a quantidade ou os tipos dos parâmetros variam.
  • Polimorfismo seria o mais correto para a quetão, assim como a sobrecarga que é um tipo de polimorfismo.
    Herança múltipla seria uma classe filha herdar de mais de uma classe pai, como é o caso do C++. O Java e Ruby simulam essa característica.
  • sobrecarga n é polimorfismo. deve-se tomar muito cuidado ao se falar OO pois pode estar falando apenas em nivel conceitual, ou nivel de implementação(polimorfiso, herenaça multipla etc, em diversas linguagens seja java C++, PHP). Para sobrecarga ser polimorfismo deve-se falar de tipos de lição estatica/dinamica........longa historia.
  • Sobrecarga é sim um tipo de polimorfismo, só que estático (ocorre na mesma classe), ocorrendo em tempo de compilação. O polimorfismo dinâmico é a sobreposição (classes diferentes) e ocorre em tempo de execução.
  • A questão esta definindo o conceito de polimorfismo, e nao herança multipla

  • Gabarito Errado

    Esse é o conceito de polimorfismo. Herança multipla, o qual em Java é realizado pela implementação de varias interfaces.

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
16873
Banca
CESPE / CEBRASPE
Órgão
TRE-AL
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito da orientação a objetos, que é uma das técnicas mais
utilizadas para concepção e desenvolvimento de programas,
julgue os itens seguintes.

Em análise orientada a objetos, a existência de entidade
caracterizada por um único atributo indica, com certeza, que
essa entidade deve ser um dos objetos do modelo do sistema.

Alternativas
Comentários
  • Objeto é sempre caracterizado por conter ao menos dados e métodos que os manipulam, portanto não pode conter apenas um único atributo.
  • Como a análise OO é feita em alto nível, não quer dizer que na Modelagem vai se tornar um objeto. Não existe relação de 1 para 1 em Análise e Projeto. Esse atributo pode ser implementado em outro objeto através da composição.


ID
16876
Banca
CESPE / CEBRASPE
Órgão
TRE-AL
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito da orientação a objetos, que é uma das técnicas mais
utilizadas para concepção e desenvolvimento de programas,
julgue os itens seguintes.

Determinada operação definida em uma classe tem a
restrição de somente poder modificar um único atributo dos
objetos dessa classe.

Alternativas
Comentários
  • Nada a ver. Não há essa restrição. As classes podem modificar quantos atributos forem necessários.
    Vale lembrar o seguinte: Métodos static somente podem acessar outros métodos ou atributos static
  • Na POO, um método, em geral, PODE alterar qualquer atributo do objeto ou até de outros obejtos, caso sejam passados por referência para o método.
    Vale lembrar:
    1 - em algumas linguagens(C++, Java) os atributos estáticos não podem ser alterados, porém em outras (Ruby*) pode.
    2 - geralmente, atributos privados herdados não podem ser alterados, pois nem são acessíveis.
    3 -...
  • Questão muito mal elaborada!!

ID
16879
Banca
CESPE / CEBRASPE
Órgão
TRE-AL
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito da orientação a objetos, que é uma das técnicas mais
utilizadas para concepção e desenvolvimento de programas,
julgue os itens seguintes.

Estimativas com base em pontos por função podem ser
efetivamente utilizadas em projetos orientados a objeto.

Alternativas
Comentários
  • Análise de pontos por função independe de linguagem de programação ou tecnologia

ID
16882
Banca
CESPE / CEBRASPE
Órgão
TRE-AL
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito da orientação a objetos, que é uma das técnicas mais
utilizadas para concepção e desenvolvimento de programas,
julgue os itens seguintes.

A quantidade de classes é uma métrica relativa a um projeto
de sistema orientado a objetos.

Alternativas
Comentários
  • Existem várias propostas para métricas OO que levam em consideração as características básicas e interações do sistema como: número de classes, número de cases, número de métodos, médias de métodos, médias de métodos por classe, linhas de código por método, profundidade máxima da hierarquia de classes, a relação existente entre métodos públicos e privados, entre outros.
     
    Read more: http://www.linhadecodigo.com.br/artigo/102/metricas-e-estimativas-de-software-o-inicio-de-um-rally-de-regularidade.aspx#ixzz2FQ3QbLSH
  • c-

    Number of classes (NOC)é uma metrica p/ projetos orientados a objetos. Outras metricas existem, nao necessariamente para POO: lines of code (LOC), function point analysis, Cocomo II etc


ID
16885
Banca
CESPE / CEBRASPE
Órgão
TRE-AL
Ano
2004
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito da orientação a objetos, que é uma das técnicas mais
utilizadas para concepção e desenvolvimento de programas,
julgue os itens seguintes.

No contexto da UML (unified modelling language), a visão
do modelo comportamental representa os aspectos dinâmicos
do comportamento dos usuários do sistema.

Alternativas
Comentários
  • Para a questão ficar correta, basta tirar "dos usuário"
  • o comportamento é do sistema e não dos usuários do sistema!

ID
19171
Banca
FCC
Órgão
TRF - 4ª REGIÃO
Ano
2007
Provas
Disciplina
Engenharia de Software
Assuntos

A proteção de atributos e operações das classes, fazendo com que estas se comuniquem com o meio externo por meio de suas interfaces, define o conceito de

Alternativas
Comentários
  • Encapsulamento vem de encapsular, que em programação orientada a objetos significa separar o programa em partes, o mais isoladas possível. A idéia é tornar o software mais flexível, fácil de modificar e de criar novas implementações.

    Para exemplificar, podemos pensar em uma dona de casa (usuário) utilizando um liquidificador (sistema). O usuário não necessita conhecer detalhes do funcionamento interno do sistema para poder utilizá-lo, precisa apenas conhecer a interface, no caso, os botões que controlam o liquidificador. Outro exemplo clássico de encapsulamento é o padrão de projeto chamado Mediator.

    Uma grande vantagem do encapsulamento é que toda parte encapsulada pode ser modificada sem que os usuários da classe em questão sejam afetados. No exemplo do liquidificador, um técnico poderia substituir o motor do equipamento por um outro totalmente diferente, sem que a dona de casa seja afetada - afinal, ela continuará somente tendo que pressionar o botão.

    O encapsulamento protege o acesso direto (referência) aos atributos de uma instância fora da classe onde estes foram declarados. Esta proteção consiste em se usar modificadores de acesso mais restritivos sobre os atributos definidos na classe. Depois devem ser criados métodos para manipular de forma indireta os atributos da classe.

    Encapsular atributos também auxilia a garantir que o estado e o comportamento de um objeto se mantenha coeso. Por exemplo, no caso da classe Semaforo poderiamos ter um método de acesso chamado lerCor(), e um modificador chamado proximaCor(). O estado é mantido pois os usuários da classe não podem alterar as cores de um semáforo ao seu bel prazer e, por exemplo, fazer a seguinte troca de cores: vermelho-amarelo-vermelho. É comum usar o padrão get para o método que retorna o valor atual do atributo e set para o método que modifica o valor de um atributo do objeto, como no exemplo abaixo: setComProtecao e getComProtecao.
  • Encapsulamento é a caracteristica de OOP em proteger por ocultação os mcanismos do objeto que nao podem ser alterados por outros. 

    https://www.slideshare.net/peterelst/introduction-to-creative-programming-in-actionscript-30/15-Encapsulation_Protect_the_inner_workings


ID
27271
Banca
FCC
Órgão
TRE-SE
Ano
2007
Provas
Disciplina
Engenharia de Software
Assuntos

Durante o projeto ocorre que na assinatura da operação "alocar" da classe "Urna" é observada a existência do atributo "zona eleitoral" que é outra classe identificada no mesmo projeto, indicando a existência de

Alternativas
Comentários
  • se urna é uma classe e zona eleitoral é outra classe então existe uma relacionamento de dependência entre elas. Se podemos aloca ruma urna em uma zona eleitoral, poderíamos pensagem em um relacionamento do tipo 1 -> N, "uma zona eleitoral pode ter N urnas".

ID
28432
Banca
CESGRANRIO
Órgão
DNPM
Ano
2006
Provas
Disciplina
Engenharia de Software
Assuntos

Em programação orientada a objetos, é correto afirmar que herança múltipla:

Alternativas
Comentários
  • A herança múltipla é implementada em algumas linguagens de programação orientadas a objetos e permite que uma subclasse possa hedar os atributos e métodos de mais de uma superclasse. Exemplo de linguagem de programação que permite este mecanismo é a linguagem C++. A linguagem Java, por sua vez não permite o uso de herança múltipla.
  • Analisando alternativas:

    a) é a instância de uma classe abstrata: Classe abstrata serve apenas como modelo para uma classe concreta. Não existe instância de classe concreta.

    b) Define no máximo uma classe pai: A herança pode ser simples com apenas uma classe pai e poder ser múltipla com mais de um pai.

    c) Correta.

    d) Ocorre quando uma classe é a instância de vários objetos. Não tem nada haver com herança. 

    e) Significa o mesmo que polimorfismo: Polimorfismo acontece apenas na herança.

  • Herança multipla permite que uma classe herde atributos e metodos de mais de 1 classe, o que nao é permite em java devido ao impasse de nao saber qual metodo implementar se as 2 classes tiverem metodos com mesmo nome 


ID
51262
Banca
CESGRANRIO
Órgão
TJ-RO
Ano
2008
Provas
Disciplina
Engenharia de Software
Assuntos

Uma classe ClasseA de determinada aplicação possuía um método calculeAlgo() em que testes (instruções de desvio condicional) eram utilizados para se determinar que algoritmo deveria ser adotado para efetuar o cálculo. Foi criada uma nova hierarquia de classes, iniciando na classe abstrata ClasseB, que declara o método abstrato calcule(). Este método é implementado por cada classe concreta da hierarquia, sendo cada uma delas correspondente a um dos algoritmos previstos no método calculeAlgo() original. ClasseA passou a ter um atributo do tipo ClasseB e métodos de acesso ao mesmo, e calculeAlgo() teve seu código substituído por uma simples chamada ao método calcule() do objeto armazenado no novo atributo. O conceito OO (Orientação a Objetos) predominante na descrição acima é a(o)

Alternativas
Comentários
  • Até agora não entendi o porque de polimorfismo!Qual o método utilizado para definir a predominância? Identifiquei Herança Múltipla, Polimorfismo e Sobrecarga de Método.
  • Não existe sobrecarga de atributo.Não houve sobrecarga (overload) e sim sobrescrita (override). Não houve herança multipla, a questão não falou.Sim, sobreescrita é polimorfismo.Não houve acesso direto ao atributo, todos foram acessados por meio de métodos específicos.
  • Só complementando @J-Christ

    O caso citado (sobrescrita) é polimorfismo dinâmico - só em tempo de execução você sabe qual Classe terá o método chamada

    Também existe a sobrecarga (que não aconteceu no caso) mas também é um caso de polimorfismo estático. Uma classe pode ter dois métodos com mesmo nome, mas assinaturas diferentes (lista de parâmetros diferentes), o que caracteriza sobrecarga.

    Se o caso citado fosse de sobrecarga, a questão teria duas respostas: polimorfismo e sobrecarga de método. Lembrando disso ajudaria na eliminação também.

ID
51274
Banca
CESGRANRIO
Órgão
TJ-RO
Ano
2008
Provas
Disciplina
Engenharia de Software
Assuntos

Alguns ambientes de modelagem UML oferecem uma funcionalidade chamada descoberta ou identificação de dependências, que cria dependências explícitas entre pacotes com base nas dependências entre seus elementos, e podem também gerar diagramas de pacotes que facilitam a visualização das mesmas. Considerando que uma aplicação OO seja modelada em camadas, correspondentes a diferentes níveis de abstração, e que cada camada contenha um ou mais pacotes, são considerados(as) indesejáveis, por causarem problemas de acoplamento e manutenibilidade,

Alternativas
Comentários
  • Um pacote é uma construçao de agrupamento que permite agrupar os elemento da UML. Os diagramas de pacotes mostram os pacotes e suas dependências. Muitos autores dizem que não devem existir ciclos de dependências --> Princípio da Dependência Acíclica [Martin]. UML Essencial - Martin Fowler.
  • Entendo que dependência circular entre pacotes não é uma boa. Mas, não entendi pq a letra D está errada. Pra mim, ter pacotes sem dependência nenhuma seria muito ruim para a manutenção também

  • @Priscila

     

    Baixo acoplamento faz parte das boas práticas de desenvolvimento OO. Ausência de dependência estaria de acordo com ela.


ID
56680
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Com relação aos conceitos de programação orientada a objetos
e sua implementação na linguagem Java, julgue os próximos
itens.

Pelo uso de polimorfismo, uma chamada de método pode fazer que diferentes ações ocorram, dependendo do tipo do objeto que recebe a chamada

Alternativas
Comentários
  • Exato. Imagine a classe Pai e a classe Filho. Se o objeto for instancia uma classe Pai, o metodo do pai será executado. Se for uma instancia de Filho, será executado o metodo da classe Filho (override method = mesma assinatura e mesmo tipo de retorno).
  • Ao meu ver esta questão estaria errada, pois, não depende do tipo de objeto que recebe a chamada, mas sim do objeto que realiza a chamada.

  • Trata-se do polimorfismo dinâmico.

    A questão no entanto poderia deixar isso mais claro pois no polimorfismo estático a ações diferentes não dependem do tipo de objeto e sim dos parâmetros passados.

     

  • Correto - nao é que seja um metodo, mas é que ha varios metodos com mesmo nome com construtores diversos dependendo dos parametros passados


ID
70264
Banca
FCC
Órgão
TRT - 3ª Região (MG)
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Um relacionamento entre classes que usa como notação um diamante preenchido associando, por exemplo, as classes Janela e Moldura, representa

Alternativas
Comentários
  • A UML reconhece três tipos mais importantes de relações: dependência, associação e generalização (ou herança).Geralmente as classes não estão sós e se relacionam entre si. O relacionamento e a comunicação entre as classes definem responsabilidades , temos 3 tipos :1. Associações : Agregação e composição2. Generalização (herança)3. DependênciasAssociação : São relacionamentos estruturais entre instâncias e especificam que objetos de uma classe estão ligados a objetos de outras classes. Podemos ter associação uniária , binária , etc.A associação pode existir entre classes ou entre objetos. Uma associação entre a classe Professor e a classe disciplina (um professor ministra uma disciplina) significa que uma instância de Professor (um professor específico) vai ter uma associação com uma instância de Disciplina. Esta relação significa que as instâncias das classes são conectadas, seja fisicamente ou conceitualmente.[Nicolas Anquetil]Composição - Relacionamento entre um elemento ( o todo) e outros elementos (as partes) onde as parte só podem pertencer ao todo e são criadas e destruídas com ele.

ID
71851
Banca
FCC
Órgão
TRT - 3ª Região (MG)
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Na programação orientada a objeto,

Alternativas
Comentários
  •  

    • b) atributos são classes que se encontram dentro de cada um dos objetos restritos a determinados tipos. Correção:Variáveis
    • c) encapsulamento consiste na aglutinação de aspectos internos e externos de um objeto. Correção: Separação
    • d) métodos são variáveis que se encontram dentro de cada um dos objetos de uma classe. Correção: Atributos são....
    • e) classe abstrata é uma classe que representa uma coleção de características presentes num mesmo tipo de objeto, mas que também pode existir isoladamente.
    •   Correção: Uma classe abstrata é uma classe que representa uma coleção de características presentes em vários tipos de objetos, mas que não existe e não pode existir isoladamente
  • um construtor serve para inicializar os atributos e é

    executado automaticamente sempre que ocorre a

    criação de um novo objeto.

  •  a)um construtor serve para inicializar os atributos e é executado automaticamente sempre que ocorre a criação de um novo objeto.

    Correto- um construtor inicia um objeto com valores padrões quando seus parâmetros sao deixados em branco, sendo declarados com o mesmo nome da classe e parâmetros passados com o valor default


ID
71860
Banca
FCC
Órgão
TRT - 3ª Região (MG)
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Em UML, é a fase na qual classes, tais como, interface do usuário e de periféricos, são adicionadas para prover uma infraestrutura técnica. Trata-se da fase de

Alternativas
Comentários
  • Não sabia que UML possuia "fases"... Meio estranho isso. Alguém poderia listar tais fases?
  • Encontrei:Fases do Desenvolvimento de um Sistema em UMLEstas fases são executadas concomitantemente de forma que problemas detectados numa certa fase modifiquem e melhorem as outras fases.1. Análise de Requisitos: captura as necessidades básicas funcionais e não-funcionais do sistema que deve ser desenvolvido2. Análise: modela o problema principal (classes, objetos) e cria um modelo ideal do sistema sem levar em conta requisitos técnicos do sistema.3. Design (Projeto): expande e adapta os modelos da análise para um ambiente técnico, onde as soluções técnicas são trabalhadas em detalhes4. Programação: consiste em codificar em linguagem de programação e banco de dados os modelos criados5. Testes : devem testar o sistema em diferentes níveis, verificando se o mesmo corresponde as expectativas do usuário, testes de unidade, de integração e de aceitação.
  • Na verdade a UML não possui fases e sim o processo de desenvolvimento de software baseado no RUP.
  • Somente confundiram o processo de desenvolvimento de sistemas com a linguagem de modelagem .... somente questões como essa desmoralizam qualquer concurso ....  somente rir para não chorar.
  • Visâo de Projeto(ou Lógica):
    -Envolve os Stakeholders;
    - Descreve requisitos comportamentais e a decomposição do sistema em conjunto de abstrações;
    - Classes e objetos são os principais elementos nesta visão;
    - Diagrama de classes, sequência e colaboração mostram os relacionamentos entre esses elementos;


ID
79210
Banca
FCC
Órgão
TRT - 18ª Região (GO)
Ano
2008
Provas
Disciplina
Engenharia de Software
Assuntos

São dois conceitos utilizados especificamente nos modelos orientados a objetos:

Alternativas
Comentários
  • a questáo envolve conceitos básicos da Orientação a Objetos: método e polimorfismo.

    Método: podemos dizer q são as operações que os objetos podem realizar.
    Polimorfismo: significa que uma classe pode se comportar de várias formas, ou seja, dependendo da chamada, o comportamento da classe pode ser distinto.

     

  • Será que só existe essa questão de informática da FCC no site "QC"?? Procurei muito e só achei essa... Por favor, gostria que a equipe do "QC" tiraasse essa minha dúvida, obrigado!!
  • vc deve ter especificado algo!!!
    coloque somente Banca FCC e informatica antes de filtrar
  •  
    • Método definem as habilidades dos objetos. Bidu é uma instância da classe Cachorro, portanto tem habilidade para latir, implementada através do método deUmLatido. Um método em uma classe é apenas uma definição. A ação só ocorre quando o método é invocado através do objeto, no caso Bidu. Dentro do programa, a utilização de um método deve afetar apenas um objeto em particular; Todos os cachorros podem latir, mas você quer que apenas Bidu dê o latido. Normalmente, uma classe possui diversos métodos, que no caso da classe Cachorro poderiam ser sente, coma e morda
    • Mensagem é uma chamada a um objeto para invocar um de seus métodos, ativando um comportamento descrito por sua classe. Também pode ser direcionada diretamente a uma classe (através de uma invocação a um método estático)
    • Herança (ou generalização) é o mecanismo pelo qual uma classe (sub-classe) pode estender outra classe (super-classe), aproveitando seus comportamentos (métodos) e variáveis possíveis (atributos). Um exemplo de herança: Mamífero é super-classe de Humano. Ou seja, um Humano é um mamífero. Há herança múltipla quando uma sub-classe possui mais de uma super-classe. Essa relação é normalmente chamada de relação "é um"
    • Associação é o mecanismo pelo qual um objeto utiliza os recursos de outro. Pode tratar-se de uma associação simples "usa um" ou de um acoplamento "parte de". Por exemplo: Um humano usa um telefone. A tecla "1" é parte de um telefone
    • Encapsulamento consiste na separação de aspectos internos e externos de um objeto. Este mecanismo é utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente apenas os métodos que alteram estes estados. Exemplo: você não precisa conhecer os detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do telefone encapsula esses detalhes, provendo a você uma interface mais amigável (os botões, o monofone e os sinais de tom)
    • Abstração é a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais. Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software
    • Polimorfismo consiste em quatro propriedades que a linguagem pode ter (atente para o fato de que nem toda linguagem orientada a objeto tem implementado todos os tipos de polimorfismo):
  • Fazem parte dos conceitos essenciais da orientação a objetos: classe, subclasse, objeto, atributo, método, mensagem, herança, associação, encapsulamento, abstração, polimorfismo, interface.
  • Metodo é o comportamento do objeto em oop. é atrves do metodoque os objetos se comunicam. 

    public class exemplMetodo
    {
      public static void main(String[] args)
      {
        for (String arg : args)
        {
          System.out.println("Parameter: " + arg);
        }
      }
    }


ID
79213
Banca
FCC
Órgão
TRT - 18ª Região (GO)
Ano
2008
Provas
Disciplina
Engenharia de Software
Assuntos

O acesso aos atributos e operações das classes somente por intermédio de serviços (mensagens) que conhecem suas interfaces é uma proteção garantida

Alternativas
Comentários
  • O encapsulamento protege o acesso direto (referência) aos atributos de uma instância fora da classe onde estes foram declarados. Esta proteção consiste em se usar modificadores de acesso mais restritivos sobre os atributos definidos na classe. Depois devem ser criados métodos para manipular de forma indireta os atributos da classe
  • Num intindi o q ele falô (questão) !
    fui pesquisar sobre e nem soube como começar, se alguem puder dar uma luz ( sem mtos jargoes (p/ leigos)).
     Mto Grata!
  • A pergunta está meio confusa.
  • Encapsulamento protege os atributos de uma classe. Modificamos a visibilidade dos atributos para private (somente a classe acessa os atributos diretamente) e criamos métodos para acessar estes atributos, estes métodos com visibilidade public (todos acessam).

    Assim a interface será representada pelos métodos public. E quando um usuario quiser a informção de um atributo, terá que utilizar o método para isto.

    Exemplo: Classe contaBancária  : atributos   (private) Saldo ;   Métodos (public) Mostrar Saldo;

    Assim o usuário (pode ser outra classe) somente irá acessar o método Mostrar Saldo, pois não tem acesso direto ao atributo Saldo, portanto não poderá modificar este atributo senão por meio de métodos publicos implementados pela classe contaBancaria.
    O que restringe movimentos de outras classes, mantendo a segurança dos atributos.

ID
79216
Banca
FCC
Órgão
TRT - 18ª Região (GO)
Ano
2008
Provas
Disciplina
Engenharia de Software
Assuntos

Na associação entre classes, o número de instâncias de uma classe que pode se relacionar com outra é definido

Alternativas
Comentários
  • A multiplicidade indica o número de instâncias de uma classe que podem existir no relacionamento existente com uma única instância de outra classe.
  • Multiplicidade

    A multiplicidade traduz o número de instâncias de uma classe que se pode relacionar com uma única instância de outras classes participantes. Pode-se especificar em UML qualquer tipo de multiplicidade.

  • Muitos: *
    Um ou mais: 1…*
    Exatamente 1: (1)
    Zero ou 1: 0…1
  • Navegação

    A navegação traduz a forma como a partir de uma instância de uma classe se pode aceder a uma ou mais instâncias de outra classe relacionada pela associação. O padrão é a associação bidirecional.


    Navegação em uma relação de associação


ID
79219
Banca
FCC
Órgão
TRT - 18ª Região (GO)
Ano
2008
Provas
Disciplina
Engenharia de Software
Assuntos

São dois tipos de relacionamento todo-parte:

Alternativas
Comentários
  • AGREGAÇÃOTipo de relacionamento com características todo-parte, onde existe um grau de coesão entre o todo e as partes menos intenso, podendo haver certo grau de independência entre eles.Um exemplo de Agregação pode ser um piloto, no ato de sua função: O piloto pode existir sem capacete e sem carro; o carro pode existir sem o piloto; o capacete pode existir sem o piloto. Mas, todos juntos, podem formar um suposto conjunto "piloto de corrida".COMPOSIÇÃOTipo de relacionamento com características todo-parte, onde existe um alto grau de coesão entre o todo e as partes, com total grau de dependência entre eles (todo e as partes). Desta forma, se o todo não existir, as partes também não existirão.Um exemplo de composição é a mão:Uma mão é composta por dedos. Os dedos compõem a mão.Não há lógica em existir um dedo sem mão, porém pode-se ter uma mão sem um ou mais dedos
  • AGREGAÇÃO - Relacionamento todo-parte em que a parte pode existir sem o todo.

    Um exemplo é a cardinalidade muitos-para-muitos em BD.

    Digamos que a gente tenha uma tabela itens mágicos e outra tabela de personagens. Então os mesmos itens podem estar agregados à lista de itens de vários personagem, mas quando este encerra sua conta no World of Questcraft,  os itens mágicos disponíveis para o mundo virtual não são deletados, apenas o personagem e as referências a quais itens são esses.

    Representado na UML pelo simbolo (Diamante Branco):

    http://content.screencast.com/users/sabiotriste/folders/Default/media/e327e97e-3ec1-4ef0-bdf5-c2582ca397b1/4ji73hl0ohgcbf5hvgnnkss5ck%202.png


    COMPOSIÇÃO - Relacionamento todo-parte em que as partes não podem existir fora do todo, isto é, se o todo for destruído elas também serão.

    Ainda considerando o World of Questcraft. A classe DadosPessoais do usuário só diz respeito à classe Usuário, então quando essa classe for destruída, as informações pessoais também serão.

    Eu acho um pouco parecido com o conceito de Entidade Fraca d

    Em UML é representada pelo diamante negro:


    http://content.screencast.com/users/sabiotriste/folders/Default/media/008e93c0-ed0c-450d-ac3a-8c02e13e78b8/6dqp6aso13b2pa6kjdeo2g0nuf%202.png


ID
101377
Banca
FGV
Órgão
SEAD-AP
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Em conformidade com a metodologia orientada a objetos, com a finalidade de evitar que partes de um programa se tornem tão independentes que uma pequena alteração tenha grandes efeitos em cascata, é aplicado um recurso que separa os aspectos externos e acessíveis de um objeto dos detalhes internos de implementação.

Esse recurso utiliza um princípio da Orientação a Objetos que propõe ocultar determinados elementos de uma classe das demais classes. O objetivo ao colocar uma proteção ao redor é prevenir contra os efeitos colaterais indesejados ao ter essas propriedades modificadas de forma inesperada.

Este recurso é conhecido por:

Alternativas
Comentários
  • Encapsulamento:

    É a caracteristica da OO capaz de ocultar (detalhes) de implementação interna de classes do mundo exterior. Define um contrato que determina o que o mundo exterior pode fazer com o objeto daquela classe.

  • Há um conceito incorreto no comando da questão.
    Em conformidade com a metodologia orientada a objetos, com a finalidade de evitar que partes de um programa se tornem tão independentes dependentes/interdependentes que uma pequena alteração tenha grandes efeitos em cascata, é aplicado um recurso que separa os aspectos externos e acessíveis de um objeto dos detalhes internos de implementação.

  • Encapsulamento vem de encapsular, que em programação orientada a objetos significa separar o programa em partes, o mais isoladas possível. A idéia é tornar o software mais flexível, fácil de modificar e de criar novas implementações.

    Uma grande vantagem do encapsulamento é que toda parte encapsulada pode ser modificada sem que os usuários da classe em questão sejam afetados. O encapsulamento protege o acesso direto (referência) aos atributos de uma instância fora da classe onde estes foram declarados. Esta proteção consiste em se usar modificadores de acesso mais restritivos sobre os atributos definidos na classe. Depois devem ser criados métodos para manipular de forma indireta os atributos da classe.

    Modularidade

    Programação modular denota a construção de programas pela composição de partes pequenas para formar partes maiores. As partes são chamadas módulos. A programação com módulos também pode ser chamada `programming in the large', contrastando com `programming in the small'. Esta técnica de programação é baseada no princípio filosófico `Dividir para conquistar', o qual sugere que um problema complexo seja dividido em subproblemas que possam ser resolvidos separadamente.

    Polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, é possível tratar vários tipos de maneira homogênea (através da interface do tipo mais abstrato). O termo polimorfismo é originário do grego e significa "muitas formas" (poli = muitas, morphos = formas).

    O polimorfismo é caracterizado quando duas ou mais classes distintas tem métodos de mesmo nome, de forma que uma função possa utilizar um objeto de qualquer uma das classes polimórficas, sem necessidade de tratar de forma diferenciada conforme a classe do objeto.

    Herança (ou generalização)

    É o mecanismo pelo qual uma classe (sub-classe) pode estender outra classe (super-classe), aproveitando seus comportamentos (métodos) e variáveis possíveis (atributos). Um exemplo de herança: Mamífero é super-classe de Humano. Ou seja, um Humano é um mamífero. Há herança múltipla quando uma sub-classe possui mais de uma super-classe. Essa relação é normalmente chamada de relação "é um".

    Os conceitos de coesão e acoplamento, surgidos no contexto da análise e projeto estruturados, embora tenham um grande impacto na qualidade de sistemas, são geralmente desconhecidos ou negligenciados por desenvolvedores iniciantes de sistemas orientados a objetos. O desenvolvimento de softwares com alta coesão e fraco acoplamento facilita, entre outras coisas, a manutenção e o reuso. Assim sendo, o estudo desses conceitos e seus desdobramentos torna-se importante para melhorar a qualidade de sistemas.
  • Encapsulamento permite que somente o que é necessari opara o mundo exterior seja exposto, oculatndo oque se deseja manter intacto aos usuarios da nova classe


ID
102349
Banca
CESPE / CEBRASPE
Órgão
TCU
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

A respeito de arquitetura de informação, julgue os itens a seguir.

Um modelo de dados de alto nível é parte de uma information systems architecture (ISA). Entre os componentes de uma ISA, estão os dados e os processos que manipulam os dados, estes últimos representados por DFDs e modelos de objetos.

Alternativas

ID
104764
Banca
FCC
Órgão
TCM-PA
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Um relacionamento do tipo todo-parte, no qual a vida da parte depende da vida do todo, é do tipo

Alternativas
Comentários
  • Composição: Quando se destrói o "todo" as partes são destruídas. A parte não pode pertener a outro todo (se destruir o todo, as parte são destruídas). Ex.: Quarto->Casa. Destruindo casa, quarto deixa de existir. Quarto só pertence a uma casa.Agreagação: A parte pode participar de outros "todos". Ex.: Musico->Banda. Terminado a banda, o músico pode ir para outra banda. Músico pode participar de duas bandas.Generalização: A classe filho se baseia na classe pai. (especialização, herança)Associação: duas classes que se conectam
  • Dica

    Diamante Cheio = Composição  => as partes dependem do todo

    Diamante Vazio = Agregação => as partes não dependem do todo

  • a-

    quarto compõe uma casa, mas um agregado de livros existe sem biblioteca


ID
104767
Banca
FCC
Órgão
TCM-PA
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Não possui instâncias diretas, mas apenas classes descendentes:

Alternativas
Comentários
  • Uma classe abstrata não pode ser instanciada, apenas estendida, ou seja, utilizada para herança. Uma classe abstrata possui métodos abstratos (sem corpo) que devem ser implementados nos seus possiveis "filhos".

    A classe que estender uma classe abstrata não precisa implementar os métodos herdados, desde de que essa subclasse também não seja concreta.

    Podemos dizer que a primeira classe concreta que herdar de uma classe abstrata é que deve implementar todos os métodos abstratos.
  • Gostaria de fazer apenas um acréscimo ao comentário da colega:

    Classes abstratas não são obrigadas a ter métodos abstratos, ou seja, ter todos os seus metodos com corpo. Mas, caso contenha ao menos um método abstrato, ela também deve, obrigatoriamente, ser declarada como abstrata.

ID
104965
Banca
FCC
Órgão
TRE-AM
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Nos modelos orientados a objeto, um relacionamento de dependência estereotipada é representado por uma

Alternativas
Comentários
  •  Extensão de caso de uso é o único relacionamento apresentado na questão que possui o esteriótipo <<extend>> no diagrama de caso de uso da UML.


ID
105547
Banca
FCC
Órgão
DPE-SP
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Classes e objetos são dois conceitos-chave da programação orientada a objetos. Com relação a estes conceitos, é correto afirmar que

Alternativas
Comentários
  • Alguém sabe dizer do que se trata essa uniformidade de atributos e serviços (métodos)?

    Essa "descrição de como criar novos objetos na classe" ficou estranha, mas se refere ao método construtor.

  •  Conjunto uniforme de atributos e serviços, pelo que entendi, quer dizer que todos objetos daquela classe, possuem os mesmos atributos e métodos.

  • a) uma classe é uma descrição de um ou mais objetos por meio de um conjunto uniforme de atributos e serviços. Além disso, pode conter uma descrição de como criar novos objetos na classe.(Correta)
    b) uma classe (Objeto)é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ela, assim como se relacionar e enviar mensagens a outras classes.
    c)uma classe é uma abstração de alguma coisa no domínio de (um software) um problema ou na sua implementação, refletindo a capacidade de um sistema para manter informações sobre ela, interagir com ela ou ambos.
    d) um objeto(Método) em uma classe é apenas uma definição, pois a ação só ocorre quando o objeto é invocado através de um método.
    e) herança é o mecanismo pelo qual um objeto(classe-  subclasse  ) pode estender outro objeto(classe-superclasse), aproveitando seus comportamentos e variáveis possíveis.
    fonte: whttp://pt.wikipedia.org/wiki/Orienta%C3%A7%C3%A3o_a_objetosikipedia

ID
105550
Banca
FCC
Órgão
DPE-SP
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Em relação a orientação a objetos, o método de desenvolvimento de um sistema em UML é dividido em análise de requisitos, análise, design (projeto), implementação, e testes. Nesse contexto, considere:

I. A análise de requisitos preocupa-se em capturar unicamente as necessidades básicas funcionais do sistema que deve ser desenvolvido.

II. A análise modela o problema principal, ou seja, as classes e objetos, e cria um modelo ideal do sistema levando em conta os requisitos técnicos do sistema.

III. O design expande e adapta os modelos da análise para um ambiente técnico, onde as soluções técnicas são trabalhadas em detalhes.

IV. A implementação consiste em codificar em linguagem de programação e banco de dados os modelos criados.

É correto o que se afirma em

Alternativas
Comentários
  • creio que o erro está aqui:II. A análise modela o problema principal através dos casos de uso e, POSTERIORMENTE, OU SEJA, NA FASE IMEDIATAMENTE POSTERIOR, CRIA as classes e objetos ( QUE A QUESTÃO CITA COMO "cria um modelo ideal do sistema levando em conta os requisitos técnicos do sistema"Meu entendimento é que o erro da questão afirma que o problema principal é analisado através das classes e objetos. Isto não é verdade em orientação a objetos, pois os problemas principais são levantados, num primeiro momento, através de diagramas de caso de uso e, num momento posterior, as classes e os objetos são derivados dos requisitos, formando os diagramas de classes, de objetos, de sequencia, etc.
  • A análise modela o problemaO design desenha a soluçãoClasse, objetos e requisitos técnicos, no meu entendimento, fazem parte do desenho da solução e não da análise do problema.
  • Talvez o problema da II seja "o problema principal", pois a análise modela todos os problemas a serem implementados, não exclusivamente o principal.
  • Para mim a única coisa errada na II é que a análise não leva em conta os requisitos técnicos do sistema.

    A análise modela sim o problema principal, utilzando classes e objetos, através de seus respectivos diagramas e outros criando um modelo ideial do sistema porém não levando em conta os pormenores que serão tratados na próxima fase.
  • Correção da alternativa II.

    II - A análise modela o problema principal, ou seja, as classes e objetos, e cria um modelo ideal do sistema sem levar em conta os requisitos técnicos do sistema.

    Fonte:www.etelg.com.br/paginaete/downloads/.../apostila_uml.pdf

  • análise responde "o que" deve ser feito, se agarre em tudo que puder para fazer isso, só nunca responda "como" deve ser feito nesta fase. acredito que o erro esteja no "modelo ideal", pois análise leva em conta a realidade e não o mundo ideal. bueno, talvez um pouco ideal..

    ...What Is Object-Oriented Analysis and Design?
     
    During object-oriented analysis, there is an emphasis on finding and describ-
    ing the objects—or concepts—in the problem domain. For example, in the case
    of the library information system, some of the concepts include Book, Library,
    and Patron.
    During object-oriented design, there is an emphasis on defining software
    objects and how they collaborate to fulfill the requirements. For example, in the
    library system, a Book software object may have a title attribute and a
    getChap-ter method (see Figure 1.2).
    Finally, during implementation or object-oriented programming, design objects
    are implemented, such as a Book class in Java.

    *copia e cola no google para encontrar a referência do texto em inglês.

ID
105553
Banca
FCC
Órgão
DPE-SP
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

A cidade de São Paulo, que possuía uma população de 10.000.000 de habitantes, teve um aumento de mais 2.000.000 de novos habitantes.

Na associação da frase acima aos conceitos da modelagem orientada a objeto, é correto afirmar que São Paulo, população e aumento, referem-se, respectivamente, a

Alternativas
Comentários
  • Na frase é possível identificar os seguintes elementos da modelagem orientado a objetos:

    CLASSE - Cidade
    OBJETO - São Paulo, instância de Cidade. Outros poderiam ser Rio de Janeiro, Curitiba, etc.
    ATRIBUTO - População. Outros seriam PIB, renda per capita, tamanho, etc.
    MÉTODO - setPopulação, por exemplo, seria a implementação de um método que aumenta o valor de habitantes da população.

ID
106078
Banca
FCC
Órgão
PGE-RJ
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

O conceito de Herança, na orientação a objetos, está especificamente associado ao significado de

Alternativas
Comentários
  • Letra B - Herança pode ser consderado um sinônimo de generalização

  • Generalização e herança permitem compartilhar similaridades entre classes e ao mesmo tempo preservar suas diferenças.

    ref.

    http://www.dca.fee.unicamp.br/cursos/POOCPP/node15.html


ID
106174
Banca
FCC
Órgão
PGE-RJ
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Sobre orientação a objetos, considere:

I. Os valores dos atributos são definidos no nível de classe.

II. Os métodos são definidos no nível de objeto.

III. A invocação de uma operação é definida no nível de objeto.

Está correto o que se afirma em

Alternativas
Comentários
  •  I. Os valores dos atributos são definidos no nível de classe.

    Errado: são definidos no nível de objeto

    II. Os métodos são definidos no nível de objeto.

    Errado: são definidos no nível de classe

     

  • questão pode ser anulada,

    a) Os valores dos atributos são definidos no nível de classe. - > membros de classe são definidos em nível de classe, logo, já existem antes de se tornarem objetos. Então a) está certa.
  • I - Os valores do atributos são definidos no nível de objeto. Os atributos só terão valor quando os objetos forem instaciados.
    II – os métodos já são definidos na classe, diferentemente do atributo que são definidos nos objetos, cada classe já tem um comportamento definido antes mesmo de serem instanciadas.
    III – apesar de já existir um método para a classe, geralmente ele não pode ser invocado se o objeto não for instanciado.
     
    Existem exceções para as regras:
    III - métodos statics podem ser chamados sem classe instanciada.
    I - Atributos statics existem sem a classe ser instanciada, apesar de só existirem a primeira vez depois que uma classe é instanciada pela primeira vez.
  • Para mim o item 3 está incorreto. A invocação é realizada quando os objetos estão instanciados, porém para que o objeto invoque a ação de outro objeto é necessário que o código já tenha sido definido na classe. Ou seja, a definições são a nível de classe, a execução destas ações serão no nível objeto.

    ou estou viajando?
  • Tá viajando, Paulo A.

    Pergunta aonde ocorre a invocação e não aonde foi definido o método.


ID
106177
Banca
FCC
Órgão
PGE-RJ
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Um comando "abrir" ao provocar diferentes ações em objetos distintos, por exemplo: em uma caixa, porta ou janela, representa figurativamente na orientação a objetos o princípio denominado

Alternativas
Comentários
  • Polimorfismo: A mesma mensagem enviada a diferentes objetos resulta em um comportamento que é dependente da natureza do objeto que está recebendo a mensagem.

ID
118813
Banca
FCC
Órgão
TRT - 20ª REGIÃO (SE)
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

A característica básica dos métodos orientados a objetos que se apresenta como uma grande vantagem quanto à sua utilização reside

Alternativas
Comentários
  • A FCC e suas fontes...

    http://www.ifpiparnaiba.edu.br/index.php?option=com_docman&task=doc_download&gid=554&Itemid=79

  • No início dos anos 90, o paradigma da orientação a objetos passou a ocupar lugar de destaque no desenvolvimento de software. Três aspectos foram relevantes para a ascensão da orientação a objetos,contrapondo-se aos métodos estruturados:


     A unificação de conceitos entre as fases de análise e programação.

     O grande potencial de reutilização do software.

     E a facilidade de manutenção.

  • Qualquer pessoa da área se assusta ao ler esse enunciado: "dos métodos orientados a objetos"!!!

    FCC criando novos conceitos...


ID
119206
Banca
FCC
Órgão
TRF - 4ª REGIÃO
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Sobre a programação orientada a objetos, analise:

I. Neste tipo de programação, objetos executam ações, mas não suportam propriedades ou atributos.

II. Uma classe especifica o formato geral de seus objetos.

III. As propriedades e ações disponíveis para um objeto não dependem de sua classe.

IV. A tecnologia orientada a objetos permite que classes projetadas adequadamente sejam reutilizáveis em vários projetos.

Está correto o que consta em

Alternativas
Comentários
  • A assertiva I está incorreta porque objetos suportam propriedades ou atributos.
    A assertiva III está incorreta porque propriedades e ações dependem da classe do objeto.

    A opção correta é a C.

ID
119233
Banca
FCC
Órgão
TRF - 4ª REGIÃO
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

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

Alternativas
Comentários
  • A) INCORRETA - A assertiva correta diria que o conjunto de objetos representado por uma subclasse é, em geral, MENOR que o conjunto de objetos representado por sua superclasse.

    B) INCORRETA - Uma subclasse pode ter métodos e tipos de dados próprios

    C) CORRETA.

    D) INCORRETA - Existem outros tipos de relacionamentos ente classes, por exemplo, associação, agregação, compositção etc.

    E) INCORRETA - Não necessariamente, pois, podem haver dados próprios para cada tipo de classe.
  • Para mim o gabarito está errado, pois:
    a) ERRADA. Não podemos afirmar que em geral acontece o que o item fala.
    b)  ERRADA. Podemos ter um objeto na subclasse que não é da subclasse e sim da superclasse por herança.
    c) ERRADA TAMBÉM. A função primordial da OO é herdar os atributos e métodos das superclasses. Se uma classe filha não necessita de atributos ou métodos da classe pai a modelagem não está feita  da melhor maneira, ou seja, ou a classe filha não deveria ser herdada da pai ou os métodos não necessários (como o item fala) não deveria estar implementados na superclasses, pois não são comuns todas as especializações. Agora, dizer que herdar métodos "desnecessários" é um problema da herança e não da modelagem foi demais hein FCC.
    d) ERRADA. Há outros tipos de relacionamentos como associações, implementações, agregações, etc.
    e) CERTA (ou menos errada). Certa ou menos errada, porque usou o verbo "podem", alguns objetos publics ou protecteds podem ser tratados como das suas subclasses.
  • Acho que a menos errada é a Letra C, pois como o colega falou, é um problema de projeto e não de herança.
    A letra A está errada, pois uma classe representa um conjunto de objetos e é composta de um conjunto de métodos e atributos que, em geral, maior que o conjunto de métodos e atributos da Superclasse.
    A letra B está incorreta, pois a afirmação correta seria: "Cada objeto de subclasse é um objeto de sua superclasse."
    A letra D está incorreta, pois relacionamentos entre classes não são apenas de herança, como o outro colega afirmou acima.
    A letra E está incorreta, pois a definição está invertida. O cerro seria: Os objetos da Subclasse podem ser tratados como objetos da Superclasse.
  • A herança é um tipo de relacionamento "é um" logo, considerando o exemplo clássico de hierarquia de Pessoa e PJurídica e PFísica, temos que:
    1) Cada PJurídica é uma Pessoa;
    2) Cada PFísica é uma Pessoa;
    3) Se ocorrer um objeto de cada subclasse teremos 2 objetos Pessoa.
  • c-

    É necessario uso de metricas para verificar o uso de orientação de objetos para rever uso de herança. Para metricas de projeto, DIT (depth of inheritance tree) pode indicar se o uso de herança esta adequado. DIT > 2 indica pouca exploração de orientação a objetos, enquanto que DIT > 5 demonstra projeto muito complexo.

  • Questão muito doida inclusive a assertiva correta (c). Não vejo o problema como de responsabilidade da herança propriamente dito e sim da implementação sendo que as linguagens disponiblizam os modificadores de acesso justamente para isso.


ID
119236
Banca
FCC
Órgão
TRF - 4ª REGIÃO
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

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

Alternativas
Comentários
  • A) ERRADA - Apenas os membros de uma classe declarados como static é que podem ser utilizados sem que haja sequer um objeto instaciado na classe.

    B) ERRADA - Os modificadores de acesso controlam acesso aos membros de uma classe, e como membros de classe entende-se que são  os métodos e as variáveis de instâncias (atributos). Portanto, o 'apenas' invalidou a alternativa.

    C) CORRETA

    D) ERRADA - Um construtor pode ser invocado sem nenhum argumento, parâmetro, sem problemas.

    E) ERRADA - Os dados podem ser acessados de outra forma, além do get e set. Aliás, uma boa prática em programação é nunca criar um get ou set sem a necessidade. A expressão 'devem' invalida a alternativa.
  • Apenas complementando a excelente explicação do colega Robson, na letra B, os modificadores de acesso também controlam o acesso às classes.
  • c-

    construtores sobrecarregados é o overloading, um tipo de polimorfismo que permite iniciar uma instancia com varias opcoes de parametros


ID
120667
Banca
FCC
Órgão
SERGAS
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

"É o mecanismo pelo qual uma classe pode estender outra classe, aproveitando seus comportamentos e variáveis possíveis." Na programação orientada a objetos esta afirmação refere-se aos conceitos essenciais de

Alternativas
Comentários
  • A resposta é a letra A.

    O mecanismo pelo qual uma classe pode estender outra classe é a Herança, em que são estendidos os comportamentos e as variáveis possíveis. 

    O comportamento de um objeto, ou conjunto de ações que um objeto pode realizar, é conhecido como método;

    Atributos são as variáveis desse objeto.

     

  • "É o mecanismo pelo qual uma classe pode estender outra classe (herança), aproveitando seus comportamentos (métodos) e variáveis possíveis (atributos)."
  • herança - mecanismo pelo qual uma classe pode estender outra classe,

    métodos  -comportamentos

    atributos -variáveis 

    Ha 3 modos de usar herança: 1- reutilização de implementação - simplemesnte reusar o codigo em superclass

    2 - diferença - adicao de atributos e metodos à classe que herda

    3- substituição de tipo - substituição de um tipo referenciado por uma subclasse por qualquer uma de suas subclasses


ID
121138
Banca
FCC
Órgão
AL-SP
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

ContaBancaria (CB) especializa as classes ItemSuportado (IS) e ItemSujeitoAJuros (ISJ) e generaliza as classes ContaCorrente (CC) e Poupança (PP). Nesse sentido, é correto afirmar que ocorre

Alternativas
Comentários
  • Gabarito letra "D". 
  • Quem generaliza -> superclasse. A leitura é feita da classe superior, para a inferior.

    Quem especializa -> subclasse. A leitura é feita da classe inferior para a superior.

    Como a classe CB especializa IS e ISJ, então temos a subclasse CB se relacionando com as superclasses IS e ISJ, portanto temos um caso de herança múltipla.

  • Fazendo o desenho fica mais fácil perceber a relação de dependência. Imaginem:

    setas saindo de CB e entrando em IS e ISJ (especialização) - Aqui está a herança multipla 

    setas saindo de CC e CP e entrando em CB (generalização)

    Lembrando que na representação de herança a seta sai da classe especializada e entra da classe generalizada: E---->G (na minha opinião deveria ser invertido, mas tudo bem).

     IS                  ISJ

              [CB]

    CC                  CP 


ID
122644
Banca
ESAF
Órgão
SUSEP
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Polimorfismo é a

Alternativas
Comentários
  • Métodos override (sobrescritos): a classe filho sobrescreve o método da classe pai, pois tem a mesma assinatura (nome e parâmetros) além do mesmo tipo de retorno. É aqui que está o segredo do Polimorfismo.métodos overload (sobrecarregados): possuem o mesmo nome mas todos tem diferentes assinaturas (parâmetros). Cada um faz algo diferente. O tipo do retorno não é verificado pois o contrato não precisa ser respeitado.
  • b

    polimorfismo é a propriedade de um método assumir diferentes comportamentos de acordo com os parãmetros que recebe.

  • Polimorfismo em OO tem a ver com métodos, não com atributos, mas como não havia nenhuma melhor, fui de B mesmo.


ID
122647
Banca
ESAF
Órgão
SUSEP
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Em relação à orientação a objetos, é correto afirmar que

Alternativas
Comentários
  • Bem simples. Para um objeto transitar de um estado para outro é preciso ocorrer um evento que aciona a transição.


ID
122653
Banca
ESAF
Órgão
SUSEP
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

São características usadas para seleção de objetos a serem considerados na Análise Orientada a Objetos:

Alternativas
Comentários
  • Esta resposta foi dada por "Mário Monteiro" na lista TIMasters. Segue abaixo:====Fonte: Engenharia de Software e Sistemas de InformaçãoDenis Alcides RezendeEditora Brasport2a Edição - 2002Capítulo 10 - Diagramação e Técnicas de Engenharia de Software10.5.2 - Identificação e Características de Objetos - Página 216:b. Características dos objetosEles devem ser usados quando o Engenheiro de Software examinar cadaobjeto em potencial para inclusão no modelo de análise:* informação retida- o objeto em potencial será útil durante a análise somente se ainformação sobre ele precisar ser lembrada de forma que o sistemapossa funcionar.* Serviços necessários- o objeto em potencial deve ter um conjunto de operaçõesidentificáveis que podem mudar o valor de seus atributos de algumamaneira.* Múltiplos atributos- durante a análise de requisitos, o foco deve recair sobreinformações "importantes".- um objeto com único atributo será mais bem representado como umatributo de um outro objeto.* Atributos comuns- um conjunto de atributos pode ser definido para o objeto empotencial, e esses atributos aplicam-se a todas as ocorrências doobjeto.* Operações comuns- um conjunto de operações pode ser definido para o objeto empotencial, e essas operações aplicam-se a todas as ocorrências doobjeto.* Requisitos essenciais- entidades externas que aparecem no espaço problema e produzem ouconsomem informações quase sempre serão definidas como objetos.Com base nessas informações, a letra (A) se encaixa nas descrições dolivro e que é o gabarito da questão.================Valeu Mario!
  • Apenas dando uma "arrumada" na resposta anterior para facilitar a leitura: 

    Características dos objetos. Elas devem ser usadas quando o Engenheiro de Software examinar cada objeto em potencial para inclusão no modelo de análise:

    * informação retida - o objeto em potencial será útil durante a análise somente se a informação sobre ele precisar ser lembrada de forma que o sistema possa funcionar.

    * Serviços necessários- o objeto em potencial deve ter um conjunto de operações identificáveis que podem mudar o valor de seus atributos de alguma maneira.

    * Múltiplos atributos - durante a análise de requisitos, o foco deve recair sobre informações "importantes".- um objeto com único atributo será mais bem representado como um atributo de um outro objeto. 

    * Atributos comuns- um conjunto de atributos pode ser definido para o objeto em potencial, e esses atributos aplicam-se a todas as ocorrências do objeto.

    * Operações comuns- um conjunto de operações pode ser definido para o objeto em potencial, e essas operações aplicam-se a todas as ocorrências do objeto.

    * Requisitos essenciais- entidades externas que aparecem no espaço problema e produzem ou consomem informações quase sempre serão definidas como objetos. 

    Com base nessas informações, a letra (A) se encaixa nas descrições do livro e que é o gabarito da questão.


ID
122656
Banca
ESAF
Órgão
SUSEP
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Em relação à programação orientada a objetos, é correto afirmar que

Alternativas
Comentários
  • b) objetos são instâncias de um atributo classe.

    c) apenas atributos numéricos são válidos.
    Errado. Atributs podem ser string, boolean, classe etc

    d) atributos podem ser agrupados em pointvalues.
    Errado.

    e) atributos adequados dispensam referências a objetos.
    Errado.
  • Os Atributos em Programação Orientada a Objetos são os elementos que definem a estrutura de uma classe

    Atributos são, basicamente, a estrutura de dados que vai representar a classe.


  • a- os objetos sao insta~cnias das classes, as quais sao abstracoes dos elementos que fazem parte do dominio do problema. Contêm atributos & metodos. 


ID
122659
Banca
ESAF
Órgão
SUSEP
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

A abordagem de Análise Orientada a Objetos consiste em:

Alternativas
Comentários
  • Qual material tem essa sequência?
  • Isso consta na abordagem OOA proposta por Coad e Yourdon.
  • A abordagem OOA ( Análise Orientada a Objeto) proposta por Coad e Yourdon consiste de cinco passos:

    1. Identificar os objetos;
    2. Identificar as estruturas;
    3. Definir os sujeitos;
    4. Definir atributos e conexões de instâncias;
    5. Definir operações  e conexões de mensagens.

    Fonte:
    http://www2.dem.inpe.br/ijar/ModelagemOOA.html
  • ESAF errou na tradução. 


    http://www.smartdraw.com/resources/tutorials/yourdon-and-coad-diagrams/

    Yourdon & Coad's Object-Oriented Analysis and Design (OOA/OOD) is an object-oriented method that precedes UML. To draw a Yourdon & Coad diagram, simply complete these five steps:

    find classes and objects

    identify the structures

    define subjects (Definir sujeitos??? Seria Definir Assunto)

    define attributes

    define services

  • d- 

    O foco da analise orientada a objeto e´ no mapeamento de uma solucao para algum processo de negocio: os analistas e desenvolvedores têm como objetivo identificar os objetos qe farao parte do sistema computacional, atributos & operacoes destes objetos. 


ID
126202
Banca
FCC
Órgão
DPE-SP
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Em programação orientada a objetos, uma associação é o mecanismo pelo qual um objeto utiliza os recursos de outro e pode ser do tipo

Alternativas
Comentários
  • Associação é o mecanismo pelo qual um objeto utiliza os recursos de outro. Pode tratar-se de uma associação simples "usa um" ou de um acoplamento "parte de". Por exemplo: Um humano usa um telefone. A tecla "1" é parte de um telefone.

  • Questão completamente sem pé e nem cabeça. Reparem que o elaborador da questão errou feio no enunciado(provavelmente sem querer). De acordo com o livro "UML 2.0 in a Nutshel", os relacionamentos presentes na UML são:
    1)Dependência: é um relacionamento do tipo "usa..." ou "tem conhecimento de";
           Nos casos de uso da UML, duas especializações do relacionamento de dependência são instituídos através de estereótipos:
                      A)<<extend>>
                      B)<<include>>
    2)Associação: é um relacionamento do tipo "possui...";
    3)Agregação: é um relacionamento do tipo "todo-parte";

    Nessa questão, o elaborador deve ter se confundido e colocado no enunciado "associação" ao invés de "dependência". Como não temos nada a ver com isso, essa questão seria passível de recurso.
  • Discordo parcialmente do comentário acima. Aconte que a terminologia da UML não é exatamente a mesma que da OO. Pessoas e empresas diferentes conceberam OO e UML, em períodos de tempo diferentes. São conceitos próximos, mas não falam sempre a mesma linguagem.
    A resposta é letra C já que associação pode ser de dois tipos:
    • Composião ("parte-todo"): que a questão chama de inclusão (que vem de incluir, ou seja, um objeto está incluído em outro);
    • Agregação ("usa-um): que a questão chama de extensão (que vem de estender; um objeto estende-se pela fato de usar outro);
    De qualquer forma, concordo que os termos inclusão e extensão são estranhos na terminologia OO, tornando essa questão meio confusa.
  • Essa questão confundiu conceitos de objetos e casos de uso, deveria ter sido anulada.

    Extensão e Inclusão são conceitos relacionados a Casos de Uso da UML, e não associações:

    "Extensão (Extend): Um relacionamento extend de um use case A para um use case B indica que o use case A pode ser acrescentado para descrever o comportamento de B (não é essencial).
    Inclusão (Include) Um relacionamento include de um use case A para um use case B indica que B é essencial para o comportamento de A."

    Associações podem ser dependências, agregações e composições.


    Fonte: http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/uml/diagramas/usecases/usecases.htm

  • c- extensao e inclusão.

    Associação no contexto da questão significa que o relacionamento entre 2 classes é do tipo "tem um". Como os colegas notaram, exemplos de associação é ContaCorrenete TEM UMA Correntista, Carro TEM UM motor, avião TEM UM piloto etc.

    resumo:

    heranã simples: é um

    associação: tem um

  • Eu achei essa questão muito mal elaborada!


ID
126229
Banca
FCC
Órgão
DPE-SP
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Na Engenharia de Software, a frase "identificar os aspectos importantes, ignorando os detalhes" define o princípio

Alternativas
Comentários
  • - Formalidade: reduz inconsistências- Abstração: aspectos importantes, ignorar detalhes- Decomposição: lidar com complexidade- Generalização: reutilização, custo- Flexibilização: mudanças, processo incremental
  • A formalidade é a técnica onde o software deve ser desenvolvido de acordo com passos definidos com precisão e seguidos de maneira efetiva.
    A Abstração preocupa-se com a identificação de um determinado fenômeno da realidade, sem se preocupar com detalhes, considerando apenas os aspectos mais relevantes.
    A decomposição é a técnica de se dividir o problema em partes, de maneira que cada uma possa ser resolvida de uma forma mais específica.
    A generalização é a maneira usada para resolver um problema, de forma genérica, com o intuito de poder reaproveitar essa solução em outras situações semelhantes.
    flexibilização é o processo que permite que o software possa ser alterado, sem causar problemas para sua execução.

    Logo a resposta correta é a letra e.

ID
126475
Banca
ESAF
Órgão
Prefeitura de Natal - RN
Ano
2008
Provas
Disciplina
Engenharia de Software
Assuntos

Analise as seguintes afi rmações relacionadas a conceitos de programação Orientada a Objetos e da linguagem de programação Java:

I. Considerando os atributos de Instância ou de Classes, quando estes são de Instância, cada objeto tem a sua própria cópia destes atributos.
II. Em um programa codifi cado em Java, um atributo de classe é identifi cado com a palavra static.
III. Um método estático pode ser invocado usando-se o nome da classe seguido de parênteses contendo o nome do método. Além disso, é obrigatório que os objetos da classe tenham sido criados para que o método estático seja invocado.
IV. Da mesma forma que é obrigatório especifi car o código a ser executado na criação de um objeto, também é obrigatório especifi car um código a ser executado na destruição deste objeto. Este princípio é denominado Visibilidade Privada.

Indique a opção que contenha todas as afi rmações verdadeiras.

Alternativas
Comentários
  • I. Considerando os atributos de Instância ou de Classes, quando estes são de Instância, cada objeto tem a sua própria cópia destes atributos.ERRADO. Na verdade não ocorre cópia do atributo. Atributos pertencem a objetos que possuem instâncias em memória. Quando um atributo é de class, também chamado de estáticos, todas as instâncias do objeto compartilham o endereço de memória referente ao atributo de classe.II. Em um programa codificado em Java, um atributo de classe é identifi cado com a palavra static.CORRETO.III. Um método estático pode ser invocado usando-se o nome da classe seguido de parênteses contendo o nome do método. Além disso, é obrigatório que os objetos da classe tenham sido criados para que o método estático seja invocado.ERRADO. Um método estático, pelo menos em JAVA, é chamado pelo nome da classe em que está definido seguido por um ponto e seguido pelo nome do método estático.IV. Da mesma forma que é obrigatório especificar o código a ser executado na criação de um objeto, também é obrigatório especificar um código a ser executado na destruição deste objeto. Este princípio é denominado Visibilidade Privada.CORRETO. No caso, em java, faz-se isso fazendo o override do método protected void finalize ()

  • Na afirmativa II eu trocaria o "É" pelo "PODE", dessa forma parece que só se pode identificar atributos de classe utilizando o modificador static, o que não é verdade já que não existe essa obrigatoriedade.

  • I. Considerando os atributos de Instância ou de Classes, quando estes são de Instância, cada objeto tem a sua própria cópia destes atributos. 

    Correto. Atributo de instância determina o estado de cada objeto, e cada objeto tem a sua própria cópia dos atributos.

    Atributos de classe também conhecidos como atributos estáticos, possui um estado que é compartilhado por todos os objetos de uma classe.

    II. Em um programa codificado em Java, um atributo de classe é identificado com a palavra static.
    Correto. Para a identificação de atributo de classe é inserido static antes da declaração do atributo.

ID
126478
Banca
ESAF
Órgão
Prefeitura de Natal - RN
Ano
2008
Provas
Disciplina
Engenharia de Software
Assuntos

Analise as seguintes afi rmações relacionadas a Orientação a Objetos:

I. O acesso a atributos públicos só pode ser feito a partir dos métodos membros da classe derivada.
II. A visibilidade dos atributos pode ser pública, privada ou protegida.
III. Os métodos protegidos podem ser acessados a partir dos métodos da classe do qual é membro.
IV. Diferentemente dos atributos privados, o acesso a métodos privados pode ser feito a partir dos métodos membros de qualquer classe.

Indique a opção que contenha todas as afi rmações verdadeiras.

Alternativas
Comentários
  • "I. O acesso a atributos públicos só pode ser feito a partir dos métodos membros da classe derivada."
    O acesso a atributos públicos pode ser feito a partir de qualquer classe.

    "IV. Diferentemente dos atributos privados, o acesso a métodos privados pode ser feito a partir dos métodos membros de qualquer classe."
    A visibilidade é a mesma. Métodos privados só podem ser acessados a partir da classe que os contém.

ID
126481
Banca
ESAF
Órgão
Prefeitura de Natal - RN
Ano
2008
Provas
Disciplina
Engenharia de Software
Assuntos

Analise as seguintes afi rmações relacionadas a Orientação a Objetos:

I. Quando os atributos são de instância, cada objeto tem sua própria cópia desses atributos.
II. Quando um código precisa ser executado para a inicialização de um objeto, esse referido código pode ser especifi cado por meio de um método construtor.
III. Um mesmo nome de método pode ser usado para identifi car diferentes métodos em uma mesma classe ou diferentes métodos em classes diferentes. A isto se dá o nome de Herança.
IV. Existem métodos cujo código apenas acessa atributos de classe ou os parâmetros passados. Esses métodos são chamados "Métodos Abstratos".

Indique a opção que contenha todas as afi rmações verdadeiras.

Alternativas
Comentários
  • I. Instancia se refere a uma classe com vários objetos Instanciados.
    III. As diferentes classes devem ser Subclasses para haver herança.
  • Analisando respostas:

    I. Quando os atributos são de instância, cada objeto tem sua própria cópia desses atributos. (Correto)

    II. Quando um código precisa ser executado para a inicialização de um objeto... método construtor. (correto)

    III. Um mesmo nome de método pode ser usado para identificar diferentes métodos em uma mesma classe ou diferentes métodos em classes diferentes. A isto se dá o nome de Herança. (Errado) Esse é o conceito de Polimorfismo.

    IV. Existem métodos cujo código apenas acessa atributos de classe ou os parâmetros passados. Esses métodos são chamados "Métodos Abstratos". (Errado)  Métodos de classe aplicam-se e operam sobre a própria classe.


ID
126484
Banca
ESAF
Órgão
Prefeitura de Natal - RN
Ano
2008
Provas
Disciplina
Engenharia de Software
Assuntos

Na Orientação a Objetos, um diagrama que retrata uma série de elementos estáticos, suas associações, estruturas de superclasse e outros inter-relacionamentos estáticos é denominado diagrama de

Alternativas
Comentários
  • Provavelmente esta resposta encontra-se errada pois o Diagrama de Sequência NÃO retrata inter-relacionamentos estáticos.
  • Sem dúvida se trata de questão errada, sequência é um diagrama de aspecto dinâmico.
  • Gabarito foi corrigido: D.


ID
128644
Banca
FCC
Órgão
MPE-SE
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

"A utilização de um sistema orientado a objetos não deve depender de sua implementação interna, mas de sua interface." Esta afirmação remete ao conceito de

Alternativas
Comentários
  • Resposta letra E
    Encapsulamento vem de encapsular, que em POO significa separar o programa em partes, o mais isoladas possível. A idéia é tornar o software mais flexível, fácil de modificar e de criar novas implementações.
    • O encapsulamento protege os dados do objeto do uso arbitrário e não-intencional.
    • O encapsulamento é o resultado (ou ato) de ocultar do usuário os detalhes da implementação de um objeto.
    • O encapsulamento é importante porque separa a maneira como um objeto se comporta da maneira como ele é implementado.
    • A definição de como implementar os conhecimentos ou ações de uma classe, sem informar como isto é feito.
  • Corrigindo o colega.

    Gabarito: D

    encapsulamento.
  • Em encapsulamento, a interface de classes é usada para proteger os atributos dela de outras classes. Questao baseada nesse livro:

    https://books.google.com.br/books?id=BPVHsG17bAYC&pg=PA19&lpg=PA19&dq=%22A+utiliza%C3%A7%C3%A3o+de+um+sistema+orientado+a+objetos+n%C3%A3o+deve+depender+de+sua+implementa%C3%A7%C3%A3o+interna%22&source=bl&ots=t1idDz58hj&sig=HErQ_uD8D98g8A_UVDmcMkHQs48&hl=en&sa=X&ved=0ahUKEwjMmrPT_LLTAhUEQZAKHaDYD_4Q6AEIODAD#v=onepage&q=%22A%20utiliza%C3%A7%C3%A3o%20de%20um%20sistema%20orientado%20a%20objetos%20n%C3%A3o%20deve%20depender%20de%20sua%20implementa%C3%A7%C3%A3o%20interna%22&f=false


ID
128653
Banca
FCC
Órgão
MPE-SE
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Uma instância de classe em um determinado momento é

Alternativas
Comentários
  • Um diagrama de objeto é frequentemente chamado de diagrama de instância.
  • d-

    Um objeto é uma instãncia de um certo tipo de dado ou classe, sendo exemplares concretos de uma abstração e sao produzidos durante runtime (instanciação). Eles podem nao ser so compativeis com sua propria classe, mas tb com classes-base correspondentes. 

     

    Definição de objeto consoante linguagem C:

    object
    region of data storage in the execution environment, the contents of which can represent values
    Note: When referenced, an object may be interpreted as having a particular type.

    – ISO/IEC 9899:1999: §3.14


ID
128656
Banca
FCC
Órgão
MPE-SE
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

"É possível que ocorram distintas implementações de uma operação de classe e que, no entanto, o nome e os parâmetros dessa operação sejam os mesmos."

Dentro do contexto da frase, relacione os textos apresentados nessas questões com a respectiva definição, significado ou conceito.

...o nome e os parâmetros dessa operação...

Alternativas
Comentários
  • Assinatura de método é composta pelo nome, quantidade, tipo e ordem dos parâmetros. Exemplo:
    public void Metodo(String st, int qtd){
    Assinatura -> Metodo(String, int);
    }
    public void Metodo(String st){
    Assinatura -> Metodo(String);
    }
  • b-

    Conceitos OO:

    Construtor: reserva o espaço em memória para objeto da classe.

    Destrutor: liberando espaço de memória alocado para objeto
    Assinatura: é a primeira linha da definição de um método, com sua visibilidade, nome, parâmetros de entrada e return.
    Responsabilidades: obrigações das classes. É possível representar uma classe apenas com seu nome ou com nome dos principais
    atributos e principais métodos


ID
128659
Banca
FCC
Órgão
MPE-SE
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

"É possível que ocorram distintas implementações de uma operação de classe e que, no entanto, o nome e os parâmetros dessa operação sejam os mesmos."

Dentro do contexto da frase, relacione os textos apresentados nessas questões com a respectiva definição, significado ou conceito.

...distintas implementações de uma operação de classe e que, no entanto, o nome e os parâmetros dessa operação sejam os mesmos.

Alternativas
Comentários
  • Resposta letra C
    Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse. A decisão sobre qual o método que deve ser selecionado, de acordo com o tipo da classe derivada, é tomada em tempo de execução, através do mecanismo de ligação tardia.
  • Polimorfismo Estático (Sobrecarga) -> Dois ou mais métodos de uma mesma classe, com o mesmo nome, mas com assinaturas diferentes.

    Polimorfismo Dinâmico (Sobreposição) -> Método herdado pela subclasse que foi reimplementado, mantendo o mesmo nome e assinatura.


    Bons estudos!!!
  • a) objeto persistente.
    Em orientação a objetos, o termo persistência refere-se ao intervalo de tempo entre a criação e destruição de um objeto. Um objeto persistente não possui seu ciclo de vida atrelado à execução do aplicativo que o gerou. Para isso, deve habitar um meio de armazenamento permanente, ou seja, a memória secundária. Objetos devem, ainda, possuir uma identidade: alguma coisa sobre si próprio, que seja única e invariável, que permitirá distinção entre objetos diferentes.
    b) enumeração.
    Enumeração: Um conjunto de valores constantes relacionados, agrupados em conjunto por conveniência como propriedades de uma única classe.
    http://help.adobe.com/pt_BR/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f35.html
    d) subclasse.
    Subclasse é uma nova classe que herda características de sua(s) classe(s) ancestral(is)
    e) pseudo-estado
    É uma abstração que inclui diferentes tipos de vértices transientes (isto é, transitórios, presentes por um curto espaço de tempo). Com exceção do pseudo-estado inicial, pseudoestados são tipicamente usados para conectar múltiplas transições em caminhos de transições de estados mais complexos. Possuem um tipo que determina sua semântica. Dentre os tipos de pseudo-estados, há os seguintes:
    • Pseudo-estado inicial: indica o local de início padrão para uma máquina de estados ou sub-estado.
    • Pseudo-estado terminado (terminate): indica a destruição do objeto e é equivalente à invocação de uma ação de destruição do objeto.
    • Pseudo-estado de escolha (choice): compreende um desvio condicional dinâmico, permitindo separar uma transição em múltiplos caminhos de saída, em função do resultado da condição avaliada.
    • Pseudo-estado de bifurcação (fork): serve para dividir uma transição de entrada em duas ou mais transições que terminam em vértices de diferentes regiões de um estado composto. As transições de saída de uma bifurcação não podem ter restrições de guarda.
    • Pseudo-estado de união (join): serve para fundir várias transições vindo de diferentes regiões em uma única transição. As transições de entrada em uma união não podem ter restrições de guarda.
    http://www.inf.ufes.br/~falbo/files/AvaliacaoQualidade-MaquinasEstados.pdf

  • POLIMORFISMO
    Significa “várias formas” é a capacidade em uma linguagem orientada a objetos de permitir que um método ou operação seja executado de várias maneiras diferentes.
    Permite programar no geral em vez de programar no específico. Em particular, permite escrever programas que processam objetos que compartilham a mesma superclasse (direta ou indiretamente) como se todos fossem objetos da superclasse; isso pode simplificar a programação. Em uma hierarquia de classes, denomina-se polimorfismo a especialização do comportamento de uma classe em suas subclasses.

    •   Capacidade de uma variável se referir em tempo de execução a objetos de diversas classes.
    •   Capacidade de abstrair várias implementações diferentes de uma única interface
    •   Capacidade que objetos diferentes têm de responder a uma mesma mensagem.

    3 TIPOS DE POLIMORFISMO
    POLIMORFISMO DE INCLUSÃO OU SOBREPOSIÇÃO (OVERRIDING):
    É o método quando redefinido em sua subclasse, que permite que um método altere o comportamento de um método da classe-pai.
    POLIMORFISMO DE SOBRECARGA (OVERLOADING):
    Ocorre quando existem funcionalidades similares em classes diferentes. É um recurso muito utilizado em orientação a objetos, que permite que um método de mesmo nome seja implementado de diversas maneiras em uma mesma classe.

    SOBRECARGA DE MÉTODOS:
    Embora alguns não considerem como polimorfismo, a sobrecarga de métodos é a capacidade de definir várias funcionalidades com um mesmo nome, variando apenas os parâmetros de chamada do método.

  • A questao aborda polimorfismo, do qual ha 4 tipos:

    a) polimorfismo de iclusao (ou puro)- torna a inclusao de novas mais facil. Usa herança para permitir comportamento polimorfico po relacionamentos com capacidades de substituição. 

    b) paramétrico - cohecido como generics, declara valores arbitrarios que so sao definidos em runtime. e.g.: public class Copier

    c) overriding - um metodo abstrato que força todas as subclasses a ter sua propria implementação.

    d) overloading - metodos que permitem operações disinttas consoante parametros passados


ID
128782
Banca
FCC
Órgão
MPE-SE
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

É correto afirmar que

Alternativas
Comentários
  • a)  um objeto persistente Transiente existe somente durante a execução do processo ou do thread que o criou.

    b) uma classe é uma instância de um objeto. Errado. Um objeto é uma instância de uma classe.

    c) uma classe abstrata pode ser instanciada diretamente. Errado. Classes abstratas não podem ser instanciadas.

    d) um objeto transiente  Persistente permanece existindo após deixar de existir o processo ou o thread que o criou. Errado.

     e) uma classe concreta pode ser instanciada diretamente. ok.
  • e-

    Classe abstrata nao pode ser instanciada. Metodos sao delcarados mas nao definidos. Para se instanciar objetos, é necessário criar uma classe concreta a partir da classe abstrata. Daí a informação que "uma classe abstrata não pode ser instanciada diretamente."

     

    Objeto persistente e transiente. Persistente é quando continua existindo apos finalizar o processo que o criou. Daí a necessidade de bancos de dados serem persistentes; os registros devem ser salvos para serem acessados depois. 

     

    Transiente é quando disaparece quando se fecha a aplicação que os originou. e.g.: um array criado em C tem que ser preenchido sempre que executado


ID
133990
Banca
CESPE / CEBRASPE
Órgão
CEHAP-PB
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Relativo à Orientação a Objetos (OO), assinale a opção correta.

Alternativas
Comentários
  • a. Objetos comunicam-se entre si por meio de mensagens e os relacionamentos entre classes se dão pr meio de associações.

    b.Máquina de estado é descrita para uma única classe, para mostrar o comportamento do ciclo de vida de um único objeto.

    c. Os modelos d eobjetos não representam o seu comportamento.


ID
135448
Banca
CESPE / CEBRASPE
Órgão
EMBASA
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Com relação aos conceitos de programação orientada a objetos,
julgue os itens a seguir.

Em orientação a objetos, estão disponíveis dois tipos de objetos: os concretos e os abstratos.

Alternativas
Comentários
  • "Os objetos podem ser concretos ou abstratos. Por exemplo, um veículo é um objeto concreto, já uma compra de ações é um objeto abstrato. Cada objeto tem a sua própria identidade e é distinto de qualquer outro, mesmo que este outro possua os mesmos valores de atributos. Por exemplo, um veículo é um objeto concreto, já uma compra de ações é um objeto abstrato."

    RUMBAUGH. James e outros. Object-oriented modeling and design. Prentice Hall Internacional Editions. New Jersy, 1991.


ID
135451
Banca
CESPE / CEBRASPE
Órgão
EMBASA
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Com relação aos conceitos de programação orientada a objetos,
julgue os itens a seguir.

O método da classe é usado para agrupar os objetos com base em algum conjunto de propriedades comuns a todos eles.

Alternativas
Comentários
  • O que agrupa objetos com base em algum conjunto de propriedades comuns a todos eles é um objeto que pode ser representado por uma classe ou um struct.
    O método da classe é formado por um conjunto de atividades sequenciais que servem para manipular objetos e variáveis.
  • Novamente, o autor da questão utiliza a linguagem do RUMBAUGH. Me parece que o texto original é algo do tipo "objetos com características semelhantes (dados e comportamento) são agrupados em CLASSES. Por exemplo, as cartas de um baralho que são objetos distintos entre si, podem ser agrupadas em uma classe geral chamada baralho". Ou seja, a classe é utilizada para agrupar objetos com base em algum conjunto de propriedades comuns a todos eles.


ID
135454
Banca
CESPE / CEBRASPE
Órgão
EMBASA
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Com relação aos conceitos de programação orientada a objetos,
julgue os itens a seguir.

A herança, em orientação a objetos, está relacionada ao fato de que objetos podem herdar características comuns de outros objetos.

Alternativas
Comentários
  • A herança, em orientação a objetos, está relacionada ao fato de que CLASSES podem herdar características comuns de outras CLASSES.
  • Em vez de "objetos", não deveria ser Classes, como o colega acima comentou?

    A herança, em orientação a objetos, está relacionada ao fato de que objetos    Classes  podem herdar características comuns de outras objetos    Classes ?

     

  • Apesar de eu ter marcado C na questão, também tive essa dúvida, alguem tem algo a mais pra comentar?

ID
136216
Banca
ESAF
Órgão
MPOG
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Em relação à Análise Orientada a Objetos, é correto afi rmar que

Alternativas
Comentários
  • a) ocorrências ou eventos são tipos de atributos (tá mais para métodos).
    b) entidades externas não são objetos.
    c) são os atributos que esclarecem o que o objeto signifi ca no contexto do espaço problema.
    d) ela utiliza o modelo entrada - processamento - saída. (não é OO, e sim procedural)
    e) orientado a objetos = objetos + atributos + herança + coesão. (OO não é só isso)

ID
137119
Banca
FGV
Órgão
Senado Federal
Ano
2008
Provas
Disciplina
Engenharia de Software
Assuntos

Uma série de modelos pode ser produzida durante um projeto orientado a objetos. O projeto inclui modelos estáticos e dinâmicos. Um modelo que é considerado dinâmico é o de:

Alternativas
Comentários





  • Modelagem estática é suportada pelo diagrama de classes e de objetos, que consiste nas classes e seus relacionamentos. Os relacionamentos podem ser de associações, herança, dependência ou refinamentos.
    Os modelamentos dinâmicos são suportados pelos diagramas de estado, sequência,
    colaboração e atividade.

    a) seqüência. (Dinâmico) CERTO.

    b) classe. (Estático) ERRADO.

    c) associação. (Estático) ERRADO.

    d) contexto. (Estático) ERRADO.

    e) generalização. (Estático) ERRADO.
  • Tipos de diagramas:
  • Tipos de diagramas:

     

    Estáticos:

    Diagramas de Use Cases

    Diagramas de Classes

    Diagramas de Pacotes

     

    Dinâmicos:

    Diagramas de Interação

    Diagramas de Sequência

    Diagramas de Colaboração

    Diagramas de Estado

    Diagramas de Atividade

     

    Fonte: http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/uml/diagramas/diagramas.htm


ID
137266
Banca
CESGRANRIO
Órgão
Casa da Moeda
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

A classe abstrata ClasseAbstrata possui um método abstrato cuja assinatura é

public void imprima()

Cada subclasse concreta de ClasseAbstrata implementa o método imprima() de acordo com os seus requisitos, resultando em métodos de mesma assinatura e comportamentos potencialmente diferentes entre as subclasses.

A classe concreta ClasseComponente possui um método cuja assinatura é
public void execute(ClasseAbstrata instancia)

Em tempo de execução, o método receberá uma instância de uma das classes descendentes de ClasseAbstrata. O fato de que uma chamada ao método imprima() da instância recebida poderá resultar na execução de diferentes implementações do método, dependendo da classe concreta a que a instância pertença, caracteriza o importante conceito da orientação a objetos chamado

Alternativas
Comentários
  • Sobrecarga de método permite a existência de vários métodos de mesmo nome na mesma classe, porém com assinaturas levemente diferentes ou seja variando no número, tipo de argumentos, no valor de retorno e até variáveis diferentes. Exemplo: public int Soma(int x, int y) e public double Soma(double x, double y, double z) Polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam.
  • O que ocorre é um tipo de Polimorfismo, chamado Sobreposição.
  •  

    Polimorfismo consiste em um unico nome para classes e metodos com comportamentos diferentes, implicando na execução de diferentes implementações do método


ID
141202
Banca
ESAF
Órgão
ANA
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

O mecanismo que possibilita restringir o acesso ao comportamento interno de um objeto é denominado

Alternativas
Comentários
  •  Aresposta correta é "encapsulamento". Como o nome sugere , podemos encapsular,isto é esconder um atributo ou um método de um objeto.

     

    A herança é quando o objeto herda da sua classe pai alguns atributos e/ou  metodos.

    Polimorfismo = poli+morfo ---> existem varias formas de polimorfismo. Como por exemplo quando dois metodos tem o mesmo nome , mas assinaturas diferentes. Tambem pode ocorrer de uma classe B ser herdeira de uma outra classe (A) e ao mesmo tempo implementar uma interface (I). Neste caso  há  polimorfismo  quanto ao  tipo  de classe  ao qual o objeto possa pertence (podemos nos referir ao obeto como senda da classes A,B ou I. Aqui uma referencia sobre polimorfismo: http://waltercunha.com/blog/index.php/2010/03/12/polimorfismo-sobreposicao-e-sobrecarga-marcio-victorino/

     

    Os atributos, de uma forma simples , podem ser entendidos como sendo os dados ou caracteristicas ou qualidades dos objetos.

    Os métodos expressam os comportamento do objeto.

  • Encapsulamento designa a restrição de acesso externo à infromação. O acesso direto à estrutura interna é canalizado e conseguido por uma interface definida. Isso é necessario para prevenir que outras partes do sistema intervenham no funcionamento do objeto encapsulado

     


ID
141205
Banca
ESAF
Órgão
ANA
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Em UML, o relacionamento utilizado para expressar herança entre classes e interfaces é a

Alternativas
Comentários
  • trecho tirado do site: http://www.macoratti.net/net_uml1.htm

    • Generalização (herança : simples ou composta) - Relacionamento entre um elemento mais geral e um mais específico. Onde o elemento mais específico herda as propriedades e métodos do elemento mais geral. A relação de generalização também é conhecida como herança no modelo a objetos. Como a relação de dependência, ela existe só entre as classes. Um objeto particular não é um caso geral de um outro objeto, só conceitos (classes no modelo a objetos) são generalização de outros conceitos.
    • Agregação Regular - tipo de associação ( é parte de , todo/parte) onde o objeto parte é um atributo do todo ; onde os objetos partes somente são criados se o todo ao qual estão agregados seja criado. Pedidos é composto por itens de pedidos.

     

    • Composição - Relacionamento entre um elemento ( o todo) e outros elementos (as partes) onde as parte só podem pertencer ao todo e são criadas e destruídas com ele.

     

    • Associação : São relacionamentos estruturais entre instâncias e especificam que objetos de uma classe estão ligados a objetos de outras classes. Podemos ter associação uniária , binária , etc. A associação pode existir entre classes ou entre objetos. Uma associação entre a classe Professor e a classe disciplina (um professor ministra uma disciplina) significa que uma instância de Professor (um professor específico) vai ter uma associação com uma instância de Disciplina. Esta relação significa que as instâncias das classes são conectadas, seja fisicamente ou conceitualmente.[Nicolas Anquetil]

     

    • Dependência - São relacionamentos de utilização no qual uma mudança na especificação de um elemento pode alterar a especificação do elemento dependente. A dependência entre classes indica que os objetos de uma classe usam serviços dos objetos de outra classe.

    Obs.: Talvez esteja enganado mas o enunciado da questão é ambiguo, pois da a entender que a herança ocorre entre uma classe e uma interface, ou que a herança ocorre entre uma classe e outra classe e entre uma interface e outra interface.

     

  • Negativo ESAF.

    Herança = Generalização

    Uma interface ou é requerida (dependencia) ou é provida (realização).

    A única resposta aceitável nesta questão é a letra B.

    Não existe Herança entre classes e interfaces, mas sim uma realização!

    Uma classe herda de outra, mas ela IMPLEMENTA uma interface.

    Interfaces podem herdar de outras.

  • Penso que o examinador pecou no português.

     

    Acredito que o enunciado ficaria correto assim:

    Em UML, o relacionamento utilizado para expressar herança entre classes e herança entre interfaces é a

     

    Segue exemplo:

     

    Herança entre classes

    public class Animal {}

    public class Arara extends Animal {}

     

    Herança entre interfaces

    public interface Motor {}

    public interface Direcao {}

    public interface Roda {}

    public interface Carro extends Motor, Direcao, Roda {}


ID
142015
Banca
CESPE / CEBRASPE
Órgão
TRE-MT
Ano
2010
Provas
Disciplina
Engenharia de Software
Assuntos

Com relação à programação orientada a objetos, assinale a opção correta.

Alternativas
Comentários
  • QUestão complicada...

    vamos lá!

     
    •  a) Um código orientado a objetos é obrigatoriamente de execução paralela (na verdade a execução é concorrente, podendo ser paralela): cada objeto é uma instância em execução simultânea no tempo a todos os outros objetos.
    •  b) A estrutura interna de um objeto possui dois componentes básicos: atributos, que descrevem o estado do objeto; e métodos, que são responsáveis pela comunicação entre objetos (são responsáveis pela alteração no comportamente do objeto).
    •  c) Na herança múltipla, uma classe pode ter mais de um ascendente imediato, em contraste com a herança simples, em que uma classe somente pode ter um ascendente. No caso da herança múltipla, pode haver diferentes tipos de conflitos entre as propriedades das classes ascendentes. CORRETO!
    •  d) Polimorfismo e sobrecarga são características importantes e exclusivas da programação orientada a objetos. (existem formas de implementar polimorfismo em C e outras linguagens)
    •  e) Classes abstratas não possuem atributos e se caracterizam por possuir métodos que podem ser criados dinamicamente quando essas classes são instanciadas.
    • (classes abstratas não são instanciadas)
  • Apesar que a letra B não está errada não, apenas esqueceu de comentar o comportamento

    e sobre a letra E ainda tem o erro de dizer que classe abstrada não possui atributo, claro que ela pode possuir sim, apenas não pode ser instanciada
  • Acredito que o erro na alternativa b) está em omitir a existência de um identificador do objeto, além dos métodos e atributos. Em alguns contextos é aceitável definir um objeto em função somente de seus métodos e atributos. Mas, como a questão fala em ESTRUTURA INTERNA de um objeto, ou seja, como ele é representado do ponto de vista da máquina, não podemos omitir a parte do identificador único de cada objeto.

  • Sobre a letra b:

    A estrutura interna de um objeto possui dois componentes básicos: atributos, que descrevem o estado do objeto; e métodos, que são responsáveis pela comunicação entre objetos.,

    Creio que alternativa está errada porque que são as mensagens responsáveis pela comunicação entre os objetos

     

    https://pt.wikibooks.org/wiki/Programa%C3%A7%C3%A3o_Orientada_a_Objetos/Introdu%C3%A7%C3%A3o

  • Sobre a letra b:

    Acredito que está errado pois os métodos representam o "comportamento" do objeto, e não a comunicação entre objetos.

  • Tomar cuidado com o "exclusivas" do cespe.

  • Acredito que o Rodrigo matou a charada da alternativa B

     

    Resumindo...

    ERRADO → Métodos são responsáveis pela comunicação entre objetos

    CERTO → Mensagens são responsáveis pela comunicação entre objetos

  • LETRA E: ERRADO

    Classes abstratas NÃO PODEM SER INSTANCIADAS!!!!!!!!


ID
142273
Banca
CESGRANRIO
Órgão
BNDES
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Analise as informações que se seguem, relacionadas aos conceitos de Orientação a Objetos (OO).

I - O conceito de herança possibilita a especialização de comportamentos pré-existentes em classes ancestrais.
II - Para que um método seja ativado num objeto, uma mensagem não precisa necessariamente ter uma referência explícita a ele, se o objeto default da classe correspondente estiver adequadamente configurado.
III - Uma das desvantagens da herança é a criação de dependência entre as classes envolvidas.
IV - De acordo com a ideia do encapsulamento, é desejável, do ponto de vista de um objeto, que seus atributos internos estejam protegidos contra modificações diretas e que o acesso seja realizado por meio de métodos específicos (setters e getters).
V - Polimorfismo está relacionado à vinculação dinâmica de mensagens e sobrescrita de métodos, sendo que o método correto a ser chamado só será definido em tempo de execução e dependerá do tipo da instância do objeto referenciado pela mensagem.

São corretas APENAS as afirmações

Alternativas
Comentários
  • Alguém poderia explicar porque só a II tá errada? Eu achava que a I e a V tb estavam. =/

    A I eu achei que estava errada por causa desse pré existente. Pra mim quando se adiciona métodos e atributos exclusivos das subclasses, eles aind anão existiam na superclasse.

    E a V eu achei que os métodos não eram escolhidos em tempo de execução, pelo menos no caso da sobrecarga não por causa das assinaturas diferentes, já na sobreposição pode até ser.



    ????????

  • O item I está certo, pois pode-se:
      a) Sobreescrever o método especializando a classe; ou
      b) Na superclasse pode está apenas definido a assinatura do método (método abstrato), necessitando que a subclasse defina o comportamento interno do método.

    O item V está certo, pois no exemplo de polimorfismo abaixo:
      a) void construir(Casa a);
      b) void construir(Predio a);
    A decisão de qual método chamar depende do TIPO da classe utilizada como parâmetro, sendo decido apenas em tempo de execução. No caso de sobrecarga, em que os métodos têm a mesma assinatura na subclasse e superclasse, mas são instanciados conforme exemplo abaixo:

    class Moradia{           class Casa {            class Predio{
      void construir();          void construir();        void construir();
    }                                     }                                  }

    public static void main(){
      Moradia c = new Moradia();
      c.construir();
    }

    Nesse caso, construir modela o comportamento do objeto, sendo necessário descobrir sua tipagem (Moradia ou Casa) para executar o método.
  • Alguém sabe me dizer onde está o erro do item II? Não ficou claro para mim esta sentença.
  • I - Esta é a ideia da herança: estender uma superclasse adicionando comportamento específico. A herança expressa um relacionamento do tipo "é um". Por exemplo, Quadrado "é uma" FormaGeometrica.

     

    II - Em Java, não existe a configuração de um objeto "default". O que existe é a possibilidade de chamar um método sem especificar um objeto específico se já estivermos no contexto de um objeto (o que equivale a fazer this.umMetodoQualquer() ).

     

    III - Corretíssimo. Uma grande desvantagem da herança é a geração de um acoplamento elevado entre as classes

     

    IV) Encapsulamento é uma característica essencial em sistemas orientados a objetos.

     

    V) Polimorfismo é uma característica básica da orientação a objetos, possibilitando a criação de designs flexíveis por meio da substituição de objetos em tempo e execução.


ID
143743
Banca
FIP
Órgão
Câmara Municipal de São José dos Campos - SP
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Os seguintes conceitos são típicos dos modelos orientados a objetos:

Alternativas
Comentários
  •  método e polimorfismo sao conceitos classicos de oop. Metodos sao os componenetes dos objetos que trocam mensagens entre si.Polimorfismo é a capacidade de um metodo ou classe assumir varias formas


ID
144454
Banca
CESPE / CEBRASPE
Órgão
TRE-MA
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Julgue os seguintes itens, a respeito de conceitos de programação orientada a objeto.

I As classes descrevem apenas os tipos de dados que compõem os objetos.
II Objetos são instâncias de uma mesma classe.
III Métodos são as ações que os objetos podem exercer.

Assinale a opção correta.

Alternativas
Comentários
  • As classes descrevem os atributos e os métodos que compõem os objetos.

  • Não entendi a II, objetos são instâncias de quaiquer classes, e não de só uma...

  • Gabarito 'd'. Em relação ao ítem:

    II Objetos são instâncias de uma mesma classe. 

    Creio que a intenção é dizer que um objeto é a instância de uma classe do mesmo tipo dele... Caso contrário, não poderia estar correta. 

  • Questão mal redigida.

  • Teve que ir por eliminação pra ter certeza.

     

    A redação do II ficou muito ruim. A instância de qualquer classe é um objeto.

     

    Sorte que não tinha uma alternativa "Somente III"

     

  • Na minha opinião só a 3 está correta.


ID
144457
Banca
CESPE / CEBRASPE
Órgão
TRE-MA
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Na programação orientada a objetos, o mecanismo pelo qual uma classe pode se estender a outra, aproveitando seus comportamentos, é denominado

Alternativas
Comentários
  • Encapsulamento consiste na separação de aspectos internos e externos de um objeto. Este mecanismo é utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente apenas os métodos que alteram estes estados

    Herança (ou generalização) é o mecanismo pelo qual uma classe (sub-classe) pode estender outra classe (super-classe), aproveitando seus comportamentos (métodos) e variáveis possíveis (atributos). Um exemplo de herança: Mamífero é super-classe de Humano.

    Polimorfismo caracteriza a criação de funções com um mesmo nome, mas códigos diferentes, facilitando a extensão de sistemas. Um tipo de polimorfismo é a redefinição de métodos para uma classe derivada. Para que isso aconteça, o método deve possuir o mesmo nome, tipo de retorno e argumentos do método sobrescrito.


     

  • Herança é aproveitar codigo ja existente em uma classe. Com a herança, a nova classe herda atributos e comportamentos que necessite, deixando a interface externa igual àquela que possibilitou herança


ID
147388
Banca
FCC
Órgão
SEFAZ-SP
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Os valores das propriedades de um objeto em um determinado instante, que podem mudar ao longo do tempo, representam

Alternativas
Comentários
  • Cada objeto possui:

    Indentidade - Característica que o distingue dos demais objetos.

    Estado - Valores correntes dos atributos.

    Comportamento - Habilidades do objeto. (métodos)

     


ID
147391
Banca
FCC
Órgão
SEFAZ-SP
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Na orientação a objetos, ao nível de classe, são definidos os

Alternativas
Comentários
  • Acho que esta questão deveria ser anulada. Pois, existem classes estáticas (static) e são usadas para definir constantes. Neste caso, teremos uma classe com apenas atributos e seus valores já atribuidos. Eu acertei a questão, mas fica a dúvida o porquê do item A não estar correto também.
  • c-

    classes nao recebem valores. objetos, sim


ID
147394
Banca
FCC
Órgão
SEFAZ-SP
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Uma classe é uma abstração que ajuda a lidar com a complexidade e um bom exemplo de abstração é

Alternativas
Comentários
  • Continuo achando a FCC a pior banca que existe. Além de definir um processo horrível nos editais, como solicitar comprovantes de títulos antes de saber a colocação do candidato, todo o processo é feito por meio manual, inclusive utilizando de papeis e o Correios. E não devolvem em caso de eliminação.
    Mas, voltando para questão, mais uma para desaprender. Lógico que errei a questão. Faço a seguinte análise para procurar entender a resposta:
    a) cliente (objeto) e disciplinas (um atributo do tipo array [lista] da classe disciplinas). Então temos duas classes envolvidas.
    b) idem a explicação, trocando cliente por professor e disciplinas por cursos. Logo, se ambas são iguais podem ser eliminadas porque há apenas uma questão correta.
    c) Um funcionário (objeto) e um departamento. O departamento é um atributo do tipo classe Departamento. Então temos duas classes associadas.
    d) Um pessoa (objeto) e o CPF, neste caso pode ser apenas um tipo primitivo do tipo número ou texto. Só que o número está na Receita Federal e não na pessoa. É bem abstrato.
    e) Idem a letra C. Só que indica que temos no objeto Casa dois atributos do tipo Empresa, um para o "projetou" e a outra para a "construiu".
    Agora vendo minha explicação, eu não deveria ter errado essa. Só sobra a letra D como diferente de todas as outras. Não acho que ela é correta, mas ela é diferente das outras e de esquisita ficou abstrata (rsrsrs), Caramba! Isto é prova de TI ou racíonio lógico? só Freud explica a FCC.
  • Entendi que a banca quis dizer que o CPF é uma abstração da própria pessoa. Em nenhuma das outras opções existe um tipo e algo que o defina.


ID
147397
Banca
FCC
Órgão
SEFAZ-SP
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

O método utilizado para inicializar objetos de uma classe quando estes são criados é denominado

Alternativas
Comentários
  • e-

    A constructor is used in the creation of an object that is an instance of a class. Typically it performs operations required to initialize the class before methods are invoked or fields are accessed. Constructors are never inherited.

    https://docs.oracle.com/javase/tutorial/reflect/member/ctor.html


ID
147400
Banca
FCC
Órgão
SEFAZ-SP
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Sobre a visibilidade dos métodos na orientação a objetos considere:

I. Os métodos públicos de uma classe definem a interface da classe.
II. Os métodos privativos de uma classe não fazem parte da interface da classe.
III. O nome dos métodos é a informação reconhecida como a assinatura dos métodos.

Está correto o que consta APENAS em

Alternativas
Comentários
  • O item III está errado porque a assinatura do método é feita através do nome do método e de seus parâmetros.
  • Os métodos definem as funcionalidades das classes, ou seja, o que será possível fazer com objetos dessa classe.  Cada método é especificado por uma assinatura, composta por um identificador para o método (o nome do método) e o tipo para o valor de retorno e sua lista de argumentos, sendo cada argumento identificado por seu tipo e nome. 
    Através do mecanismo de sobrecarga (overloading), dois métodos de uma classe podem ter o mesmo nome, desde que suas assinaturas sejam diferentes.  Tal situação não gera conflito pois o compilador é capaz de detectar qual método deve ser escolhido a partir da análise dos tipos dos argumentos do método. Neste caso, diz-se que ocorre a ligação prematura (early binding) para o método correto.
    O modificador de visibilidade pode estar presente tanto para atributos como para métodos.  Em princípio, três categorias de visibilidade podem ser definidas:
    * Público, denotado em UML pelo símbolo +:  nesse caso, o atributo ou método de um objeto dessa classe pode ser acessado por qualquer outro objeto (visibilidade externa total);
    * Privativo, denotado em UML pelo símbolo -:  nesse caso, o atributo ou método de um objeto dessa classe não pode ser acessado por nenhum outro objeto (nenhuma visibilidade externa);
    * Protegido, denotado em UML pelo símbolo #:  nesse caso, o atributo ou método de um objeto dessa classe poderá ser acessado apenas por objetos de classes que sejam derivadas dessa através do mecanismo de herança.
  • Sendo mais objetivo:

    O item III está errado, pois diz que o nome do método é a sua assinatura, quando está é composta por: nome, quantidade, tipo e ordem dos parâmetros. 

    Quanto aos itens I e II, temos assuntos relacionados tipicamente a propriedade chamada Encapsulamento em OO. Ver explicação teorica abaixo:

    Em linguagens orientadas a objetos, é possível encapsular o estado de um objeto. Em termos práticos, isso se realiza limitando o acesso a atributos de uma classe exclusivamente através de seus métodos. Para isso, as linguagens orientadas a objeto oferecem limitadores de acesso para cada membro de uma classe.

    Tipicamente os limitadores de acesso são:

    • público (public) - o membro pode ser acessado por qualquer classe. Os membros públicos de uma classe definem sua interface (esse ponto garante que o item I esteja correto. E por analogia, garante que o item II, que trata de métodos privados, não fazem parte da sua interface.)
    • protegido (protected) - o membro pode ser acessado apenas pela própria classe e suas sub-classes
    • privado (private) - o membro pode ser acessado apenas pela própria classe
    Espero ter ajudado!


ID
148069
Banca
FCC
Órgão
TRT - 16ª REGIÃO (MA)
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Um analista desenvolveu métodos de impressão de dados com a mesma assinatura para três classes de impressoras (jato de tinta, laser e matricial) derivadas de uma mesma superclasse impressora. Tal prática

Alternativas
Comentários
  • Dica: nas provas da FCC, falou em "mesma assinatura", terá grande chance de ser polimorfismo :)

  • O termo polimorfismo é originário do grego e significa "muitas formas".   Na orientação a objetos, isso significa que um mesmo tipo de objeto, sob certas condições, pode realizar ações diferentes ao receber uma mesma mensagem.  Ou seja, apenas olhando o código fonte não sabemos exatamente qual será a ação tomada pelo sistema, sendo que o próprio sistema é quem decide qual método será executado, dependendo do contexto durante a execução do programa.  Dessa forma, a mensagem "fale" enviada a um objeto da classe "Animal" pode ser interpretada de formas diferentes, dependendo do objeto em questão.  Para que isto ocorra, é preciso que duas condições sejam satisfeitas: exista herança de uma classe abstrata e casting (outras situações também podem resultar em polimorfismo).
    http://www.hardware.com.br/artigos/programacao-orientada-objetos/
  • Mesma assinatura, comportamentos diferentes== polimorfismo

     


ID
148084
Banca
FCC
Órgão
TRT - 16ª REGIÃO (MA)
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Um analista necessita definir uma associação entre classes onde uma delas, sendo parte da outra, tem sua vida controlada por aquela da qual faz parte. Esta associação é tipicamente uma

Alternativas
Comentários
  • O relacionamento e a comunicação entre classes definem responsabilidades.  Temos 3 tipos:
    1) Associações:  São relacionamentos estruturais entre instâncias e especificam que objetos de uma classe estão ligados a objetos de outras classes.  Podemos ter associação uniária, binária, etc.  A associação pode existir entre classes ou entre objetos.  Uma associação entre a classe Professor e a classe Disciplina (um Professor ministra uma Disciplina) significa que uma instância Professor (um professor específico) vai ter uma associação com uma instância Disciplina.  Esta relação significa que as instâncias de classes são conectadas, seja fisicamente ou conceitualmente.
    * Agregação Regular:  tipo de associação (é parte de, todo/parte) onde o objeto parte é um atributo do todo;  onde os objetos partes somente são criados se o todo ao qual estão agregados seja criado.  Pedidos é composto por Itens de Pedidos.
    * Composição:  relacionamento entre um elemento (o todo) e outros elementos (as partes) onde as partes só podem pertencer ao todo e são criadas e destruídas com ele.

    2) Generalização (herança simples ou composta):  relacionamento entre um elemento mais geram e um mais específico, onde o elemento mais específico herda as propriedades e métodos do elemento mais geral.  A relação de generalização também é conhecida como herança no modelo a objetos.  Como a relação de dependência, ela só existe entre as classes.  Um objeto particular não é um caso geral de um outro objeto, só conceitos (classes no modelo a objetos) são generalizações de outros conceitos.

    3) Dependência:  são relacionamentos de utilização no qual uma mudança na especificação de um elemento pode alterar a especificação do elemento dependente.  A dependência entre classes indica que os objetos de uma classe usam serviços dos objetos de outra classe.

ID
148090
Banca
FCC
Órgão
TRT - 16ª REGIÃO (MA)
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Considere diversas agências (classe Agencia) de atendimento a reclamações trabalhistas espalhadas em vários pontos do Estado. Uma delas, a central (classe AgenciaCentral), tem atributos diferenciados, porém herda os demais atributos e operações de Agencia. O relacionamento entre essas classes é definido na UML como

Alternativas
Comentários
  •  Palavra chave: herda.

    Herança implica em generalização.
  • Ainda não estudei UML mas utilizando lógica errei. Meu entendimento foi o seguinte: Ela herda da classe Agencia e tem atributos diferenciados (o que me fez pensar que isso seria específico - que me lembra Especialização)


ID
148330
Banca
FCC
Órgão
TRT - 16ª REGIÃO (MA)
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Além dos conceitos de objeto e classe, o paradigma da orientação a objetos envolve os princípios de

Alternativas
Comentários
  • A Programação Orientada a Objetos está sedimentada sobre quatro pilares derivados do princípio da abstração, são eles: Encapsulamento, Herança, Composição e Polimorfismo.

    Figura 4
    (Fonte: Metrópole Digital - UFRN)

    Gabarito Letra "A".
  • a

    As 3 principais caracteristicas sao encapsulamento (ocultamento de variaveis e metodos de uma classe a outra), herança (reaproveitamento de codigo de super para subclass) e polimorfismo (assumir varias formas, aproveitando o method do java). Abstração é a noção de idea do que uma classe faz em vez de como ela faz. Uma classe concreta é uma classe que materializa as caracteristicas da classe abstrata em uma instância real. 


ID
148387
Banca
FCC
Órgão
TRT - 16ª REGIÃO (MA)
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Compartilhamento de atributos e operações genéricas entre diversas classes descendentes de uma classe ancestral remete ao conceito de

Alternativas

ID
148774
Banca
FCC
Órgão
TJ-SE
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Considere, hipoteticamente, que a Justiça Federal determinou o uso de uma rotina automatizada para buscar e obter informações jurídicas no território nacional. Para tanto, especificou uma classe (mãe) com base nos fundamentos OO para ser usada em todos os sistemas de justiça regionais (classes-filha que herdam os atributos e operações da mãe). Suponha que os métodos de implementação das operações da classe mãe, mantidas suas assinaturas, tiveram de ser adaptados a cada região por motivos diversos. Nessa situação, é correto que

Alternativas
Comentários
  •      A herança é uma das principais características da orientação a objetos e está associada ao conceito de agrupamento de objetos de acordo com um conjunto de propriedades comuns.  Como classe é o agrupamento de objetos que compartilham a mesma estrutura de dados e funções, é possível encontrar grupos que possuam um conjunto de propriedades e que a partir desse grupo seja possível criar outros grupos que possuam propriedades ainda mais específicas, formando assim um subconjunto do anterior, herdando suas propriedades.
         A herança permite ainda que as características herdadas da classe mãe possam ser alteradas e expandidas pela classe filha.  Essa capacidade dos modelos orientados a objetos permite que a modelagem seja feita em camadas de classes, criando uma árvore, para cada classe com um nível decrescente de abstração. O uso de herança permite a criação de classes em diferentes situações simplificando a modelagem e implementação aumentando a capacidade de reutilização das classes.
         Polimorfismo é a propriedade que permite que a mesma mensagem possa ser respondida de forma diferente por duas ou mais classes, ou seja, o polimorfismo presente em linguagens orientadas a objetos permite que objetos de diferentes classes possam receber um mesmo formato de mensagem.  Isto permite a padronização das interfaces quando da criação das classes de um domínio, o que facilita a reutilização de software na abordagem de orientação a objetos.
  • Como conservou a suas assinaturas mudando-se apenas a implementação dos métodos em cada classe filha, tem-se o conceito de polimorfismo.

    Resposta: C
  • Quando classe-filha altera a implementação de um método genério da classe-mãe, temos o uso do polimorfismo, mais especificamente o dinâmico ou sobreposição, em que:
    • Ocorre em classes distintas.
    • A classe-filha é escolhida em tempo de execução (ligação dinâmica).
    • A escolha depende do tipo do objeto.
    Vale lembrar que existe outro tipo de polimorfismo: Estático ou Sobrecarga. Este ocorre em tempo de compilação, na mesma classe e com métodos de mesmo nome só que com assinaturas distintas (quantidade de parâmetros diferentes).

    Bons estudos!
  • A questão aborda sobre o conceito de polimorfismo que

    Significa “várias formas” é a capacidade em uma linguagem orientada a objetos de permitir que um método ou operação seja executado de várias maneiras diferentes.

    Permite programar no geral em vez de programar no específico. Em particular, permite escrever programas que processam objetos que compartilham a mesma superclasse (direta ou indiretamente) como se todos fossem objetos da superclasse; isso pode simplificar a programação. Em uma hierarquia de classes, denomina-se polimorfismo a especialização do comportamento de uma classe em suas subclasses.

  • c

    PoOlimorfismo implica metodos com mesma assinatura mas com parametros distintos para melhor adaptação à classe que usa esse recurso


ID
149407
Banca
FCC
Órgão
TJ-SE
Ano
2009
Provas
Disciplina
Engenharia de Software
Assuntos

Na programação orientada a objetos, são características dos objetos:

Alternativas
Comentários
  • Uma classe sempre tem:
    1. algo que a identifica: uma identidade;
    2. algo que determina o seu estado: os atributos; e 
    3. algo que determina seu comportamento: as operações/métodos.
  • Notem que estamos falando de Objetos e não de classes.
    Na programação orientada a objetos, são características dos objetos:
    Por isso a resposta certa é a letra B. se estivéssemos falando de Classes ou de Paradigma de Orientação a Objetos, a resposta seria a letra C.
  • Componentes de um objeto:
    - Identidade: Propriedade do objeto que o distingue de todos os outros objetos.
    - Estado: Reflete os valores correntes dos atributos do objeto em determinado momento.
    - Comportamento: Como o objeto reage em termos de mudança de estado e troca de mensagens. Conjunto de atividades externamente observáveis do objeto.