********************************************** ********** LIN2 - Roteiro Estudo P2 ********** ********************************************** Data : 04/12/2002 Versão : 04/07/2007 Professor: Wagner Toscano Autor : Leandro Salvador ( leandrosalvador.com.br ) 1 - O que é um objeto? Qualquer coisa que pode realizar um conjunto de atividades. E a esse conjunto de atividades que o objeto pode realizar é chamado de "Comportamento". 2 – Qual processo é feita a interação entre os objetos? É necessário um interface. Essa interface consiste em um conjunto de comandos que realizam uma ação específica. 3 – Qual a diferença de objeto emissor e objeto receptor? A diferença é que o objeto emissor envia a mensagem e o receptor recebe a mensagem. 4 – O que é um "argumento de mensagem" ? São mensagem que podem conter informações que os objetos emissores necessitam passar aos receptores. 5 – O que vem ser "Operação Seqüencial" ? É uma seqüência de chamadas de processos. 6 – O que é "método"? É o código associado a cada mensagem. 7 – O que é uma "Instância de Método"? São métodos que operam sobre objetos específicos. 8 – O que é Mensagem Instanciada? São mensagem que invocam métodos instanciados. 9 – Como são denominados os métodos que operam sobre uma classe específica? São denominados de Métodos de Classe. 10 – Descreva uma estrutura de um método em linguagem C++ ou Smalltalk. Pode ser Pseudo código. NomeMetodo : algumaEntrada |novoValor| novoValor:=algumaEntrada*2. ^novoValor. 11 – Descreva uma metodologia que utilize técnicas de OO, para solucionar um problema. A solução para problema de OO pode ser dividido em 4 partes: Identificar o problema, Identificar o objeto necessário para solução, Identificar a mensagem a ser enviada para o objeto, Criar uma seqüência de mensagens para os objetos solucionarem o problema. 12 – Cite e descreva os conceitos básicos de uma linguagem de computação OO? Abstração é uma visualização ou uma representação de uma entidade que inclui somente os atributos de importância em um contexto particular. Encapsulamento em programação OO, a interação entre os objetos é feita através de mensagem. Um objeto tem conhecimento de coisas dos outros através de interfaces. As características e o comportamento dos objetos estão "escondidos" de outros objetos. Polimorfismo permite que dois ou mais objetos respondam para uma mesma mensagem. E permite a comunicação de objetos sem terem conhecimento de que tipo de objetivo é e como o objeto receptor irá tratar a mensagem. Exemplo na vida diária: O objeto estudante responde ao som do sinal da escola. Muitos estudantes conhecem o significado do sinal. Quando o sinal toca (mensagem), cada estudante aplica seu entendimento. Alguns vão para casa , outros vão à biblioteca, alguns vão para outros classes etc. Herança permite que uma classe tenha o mesmo comportamento de outra classe e estenda, ou costure, o comportamento para providenciar uma ação especifica. Exemplo, existe as classes pessoas fisicas e pessoas jurídicas, que possuem um comportamento similar tais como gerenciam nomes, endereços, etc. Porem a classe pessoa física possui CPF, já a classe pessoa jurídica possui CNPJ. Às infomeções comuns são colocadas em uma classe chamada Pessoa. 13 – Cite, descreva e explique os tipos de mensagem existentes na linguagem Smalltalk. Uma dos 3 tipos é mensagem unária é similar a uma chamada de função de um único parâmetro. Este tipo de mensagem consiste de um nome de mensagem e um operando. Os objetos são colocados antes do nome da mensagem. Um exemplo : xsin "retorna o resultado do seno de x" Datetoday "retorna uma nova instancia da classe Date" mensagem binária são usadas para especificar aritmética, comparação e operações lógicas. Uma mensagem binária pode ter o tamanho de um ou dois caracteres e conter uma combinação de qualquer um dos seguintes caracteres especiais : + / \ * \= < > = % & Um exemplo A + B " retorna o resultado da soma de A e B" mensagem de palavra-chave é equivalente a uma chamada de procedimento com dois ou mais parâmetros. Veja o seguinte exemplo, o nome do objeto para qual a mensagem é enviada, é escrita primeiro e depois o nome da mensagem ( ou nome do método ),seguindo o parâmetro a ser passado. Exe. Array new: 20 "A mensagem new: é enviada para o objeto Array com parâmetro 20" 14 – Sendo a linguagem Smalltalk uma linguagem totalmente OO, existem ponteiro para manipular os objetos? Sim 15 – Descreva o conceito de "self" para Smalltalk ou "this" para C++. Permite a utilização de variáveis que possuam o mesmo nome dos objetos. Sendo assim, um método pode acessar outros métodos em seu próprio objeto especificado "self" como receptor da mensagem. 16 – Qual a ordem de precedência de execução dos objetos na linguagem Smalltalk ? O Smalltalk executa a mensagem da sentença da esquerda para a direita. O resultado da mensagem substitui a mensagem da sentença e também executa todas as expressões que se encontram dentro de um par de parêntese, começando com o mais interior e à esquerda, quando houver parênteses alinhados. 17 – Explique uma atribuição em um método Smalltalk. Uma atribuição muda o valor do objeto para o qual a variável aponta. E aponta para um objeto ao invés de conte-lo. 18 – Quando um método retorna um objeto ? Quando um '^' é encontrado o método termina sua execução e retorna o valor a sentença seguindo o símbolo de retorno. por exemplo : ^sentença O resultado da sentença é retornado, onde sentença pode ser qualquer sentença válida. 19 - O que é uma variável temporária ? de exemplo. VT são definidas na definição da interface do método, por exemplo a sentença ; nome:umNome endereço:umEndereço define duas VT : umNome e umEnderço. Estas VT mantém os argumentos passados para mensagem nome:umEndereço. 20 – O que é um bloco de argumento zero em Linguagem Smalltalk ? de exemplo. O bloco de argumento zero não possui nenhum argumento. IfTrue: [ x:=2 ] 21 – de um exemplo de bloco que receba um argumento. [:variavel1 | código] [:variavel1 | :variavel2| códigoo ] Onde a variável 2 e variável 2 são VT e são válidas apenas dentro do escopo do bloco. 24 – Descreva sobre o obojeto "nil" da linguagem Smalltalk. Que é a mesma coisa que "null" da linguagem C++. O nil é um objeto que não significa "nada". Todas as variáveis apontam inicialmente para nil. Qualquer variável pode ser atribuída a nil durante a execução com uma sentença como esta : variávelLixo:=nil. Nil pode também ser usado como valor de retorno em um método para indicar que a operação não alcançou sucesso. 25 qual a diferença entre as mensagens : binárias & e | e palavras-chaves and : e or :,? A mensagem binária para o and lógico é & e para o or lógico é |. (A>0) & (B<0) ou (A>0) | (B<0) "retorna true se A é positivo e B é negativo, se não false." E a palavra-chave são and: e or:. O formato para estas mensagem é: boolean and: [código] boolean or: [código] 26 - Existe 4 tipos de laços em Smalltalk. Cite-os escreva os comandos correspondentes em C++. timesRepeat : a mensagem timeRespeat : executa um bloco de códigos por um numero específico de vezes : whileTrue : e whileFalse : estas mensagem executam o bloco de código até a expressão booleana que as precede atinja ou o valor verdadeiro ou falso respectivamente. to:do: A mensagem to:do: executa um bloco diversas vezes baseado em um valor inicial e final. 27 – O que são classes? São objetos que são agrupados e possuem uma única forma e o mesmo comportamento. Um grupo de objetos assim agrupados é chamado CLASSE. 28 – Quais os elementos que definem o comportamento de uma classe? A definição do comportamento de uma classe tem três partes: mensagem, métodos e variáveis. 32 – O que é um "construtor". Dê um exemplo de uma sintaxe. Um construtor é caracterizado como possuindo o mesmo nome da classe, além de não retornar nenhum tipo de valor. 33 – O que é um "destruidor". Dê um exemplo de uma sintaxe. o destructor é o oposto de construtor, isto é, quando a classe não for mais utilizada, esse método será executada por ultimo. Faltam: 22 – 23 – 30 – 31 – 34 by Tom ----------//----------