*********************************** ********** LIN2 - Resumo ********** *********************************** Data : 05/12/2002 Versão : 04/07/2007 Professor: Wagner Toscano Autor : Leandro Salvador ( leandrosalvador.com.br ) * OO (Orientação a Objeto) - objeto --> instâncias de uma classe, executa uma atividade - mensagem --> protocolos da classe - método --> detalhes da implementação para as mensagens e representam o comportamento da classe, código associado a cada mensagem - método de classe --> opera sobre uma classe específica - classe --> objeto que é agrupado e possui uma única forma e o mesmo comportamento - elementos que definem comportamento da classe --> mensagens, métodos, variáveis - instância --> métodos que operam sobre objetos específicos - mensagem instanciada --> invoca métodos instanciados - comportamento --> emissor, mensagem, receptor, retorno, emissor - interação entre objetos --> interface (comandos que realizam uma ação específica) - polimorfismo --> implementação diferente para cada objeto, mas a chamada é idêntica, permite que dois ou mais objetos respondam para uma mesma mensagem e a comunicação de objetos sem terem conhecimento de que tipo de objetivo é e como o objeto receptor irá tratar a mensagem - herança --> uma classe tem o mesmo comportamento de outra e estende para providenciar uma ação específica - abstração --> visualização ou representação de uma entidade que inclui apenas os atributos de importância em um contexto particular - encapsulamento --> a interação é feita através de mensagens, 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 - construtor --> possui o mesmo nome da classe e não retorna nenhum tipo de valor - destruidor --> último método executado, dar "fetch" na memória - operação seqüêncial --> seqüência de chamadas de processos - solução de problemas OO (identificar) - o problema --> somar 2 números e imprimir a soma - o objeto necessário para solução --> num1, num2 - a mensagem a ser enviada para o objeto --> +umNumero (parâmetro) - criar uma seqüência de mensagem para os objetos solucionarem o problema --> (num1+num2)print * Smalltalk - tipos de mensagens - unárias (similar a uma chamada de função de um único parâmetro, nome de mensagem e um operando), xsin (retorna o seno de x) - binária (pode ter o tamanho de 1 ou 2 caracteres e conter uma combinação dos operandos), a + b - de palavra chave (equivalente a chamada de procedimento com 2 ou + parâmetros), Array new: 20 (a mensagem new: é enviada para o objeto Array com parâmetro 20) - self em Smalltalk, this em C++ --> permite a utilização de variáveis que possuam o mesmo nome dos objetos, um método pode acessar outros métodos em seu próprio objeto especificado "self" como receptor da mensagem - ordem de precedência --> esquerda para direita, o resultado da mensagem substitui a mensagem da sentença e executa todas as expressões que se encontram dentro de (), começando com o mais interior à esquerda quando houver parênteses alinhados - atribuição --> muda o valor do objeto para o qual a variável aponta; aponta para um objeto ao invés de contê-lo - método retorna objeto --> quando um ^ é encontrado o método termina sua execução e retorna o valor da sentença seguindo o símbolo de retorno, ^sentenca, o resultado da sentenca é retornado, onde sentença pode ser qualquer uma válida - variável temporária --> definida na definição da interface do método, nome:umNome endereço:umEndereco, define duas VT (umNome e umEndereco), estas VT mantém os argumentos passados para a mensagem nome:umEndereco - bloco de argumento zero --> não possui nenhum argumento, IfTrue: [x:=2] - bloco que recebe argumento --> [:variavel1 | codigo] \n\t [:variavel1 | :variavel2 | cogigo], variavel1 e variavel2 são VT e são válidas apenas dentro do escopo do bloco - nil em Smalltalk, null em C++ --> objeto que não significa nada, todas as variáveis apontam inicialmente para nil, qualquer variavel pode ser atribuída a nil durante a execução com uma sentença como variavelLixo := 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 - mensagem binária --> & é and, | é or - palavra chave --> and: or: , boolean and: [cógigo] \n boolean or: [código] - laços - timesRepeat --> executa um bloco de códigos por um número específico de vezes - whileTrue e whileFalse --> executa um bloco de código até a expressão booleana que as precede atinja ou o valor verdadeiro ou falso respectivamente - to:do --> executa um bloco diversas vezes baseado nem um valor inicial e final ----------//----------