Prévia do material em texto
Programação Orientada a Objetos (Cód. ES006 / Sem. 2011-2 ) Universidade Federal do Ceará – UFC Campus de Quixadá Engenharia de Software Prof. Lincoln Souza Rocha (lincolnrocha@ufc.br) OBJETOS E CLASSES Lincoln Souza Rocha (POO - 2011.2) 2 Índice • Criando Objetos com BlueJ • Métodos e Parâmetros • Tipo de Dados • Estado • Interação entre Objetos • Código Fonte • Valores de Retorno • Objetos como Parâmetro Lincoln Souza Rocha (POO - 2011.2) 3 Objetos e Classes • Objetos Java modelam objetos a partir do domínio de um problema • Os objetos são criados a partir de classes – A classe descreve o “tipo” de objeto – Os objetos representam instanciações individuais da classe Lincoln Souza Rocha (POO - 2011.2) 4 Criando Objetos com BlueJ Lincoln Souza Rocha (POO - 2011.2) 5 Projeto Shapes Criando Objetos com BlueJ Lincoln Souza Rocha (POO - 2011.2) 6 Exercício • Exercício 1.1 – Crie outro circulo. Em seguida crie um quadrado. Lincoln Souza Rocha (POO - 2011.2) 7 Métodos e Parâmetros • Um método é a implementação de uma operação • Podemos nos comunicar com objetos invocando seus métodos. Objetos em geral fazem algo se invocarmos um método • O cabeçalho de um método chama-se assinatura. Ela fornece as informações necessárias para invocar esse método Lincoln Souza Rocha (POO - 2011.2) 8 Métodos e Parâmetros Lincoln Souza Rocha (POO - 2011.2) 9 Exercício • Exercício 1.2 - O que acontece se você chamar moveDown duas vezes? Ou três vezes? O que acontece se você chamar makeInvisible duas vezes? Lincoln Souza Rocha (POO - 2011.2) 10 Métodos e Parâmetros • Métodos podem ter parâmetros para fornecer informações adicionais a uma tarefa Lincoln Souza Rocha (POO - 2011.2) 11 Métodos e Parâmetros • Várias instâncias podem ser criadas a partir de uma única classe • Um objeto tem atributos e valores armazenados em campos • A classe define quais campos um objeto tem, mas todo objeto armazena seu próprio conjunto de valores (o estado do objeto) Lincoln Souza Rocha (POO - 2011.2) 12 Exercício • Exercício 1.3 Tente invocar os métodos moveVertical, slowMoveVertical e changeSize. Descubra como você pode utilizar moveHorizontal, para mover o círculo 70 pixels à esquerda. Lincoln Souza Rocha (POO - 2011.2) 13 Tipo de Dados • Os parâmetros possuem tipos. O tipo define os tipos de valores que um parâmetro pode assumir • Um tipo especifica que o tipo de dados pode ser transmitido como um parâmetro Lincoln Souza Rocha (POO - 2011.2) 14 Informações sobre os Tipos de Dados do Java vejam o Apêndice A Exercício • Exercício 1.4 – Invoque o método changeColor em um de seus objetos da classe círculo e insira a string “red”. Isso deve alterar a cor do círculo. Tente outras cores. • Exercício 1.6 – Invoque o método changeColor e escreve a cor no campo de parâmetro sem as aspas. O que acontece? Lincoln Souza Rocha (POO - 2011.2) 15 Exercício • Exercício 1.7 – Crie vários objetos círculo na bancada de objetos. Você pode fazer isso selecionando new Circle() a partir do menu pop-up da classe Circle. Torne- os visíveis, em seguida, mova-os na tela usando os métodos move. Faça um grande e amarelo; faça outro pequeno e verde. Tente as outras formas também: crie alguns triângulos e quadrados. Altere suas posições, seus tamanhos e suas cores. Lincoln Souza Rocha (POO - 2011.2) 16 Estado • Objetos têm estado. O estado é representado pelos conjunto de valores armazenados nos campos/atributos num dado instante de tempo Lincoln Souza Rocha (POO - 2011.2) 17 O que há em um Objeto? Lincoln Souza Rocha (POO - 2011.2) 18 Exercício • Exercício 1.9 – Utilize as formas com base no projeto shapes para criar uma imagem de uma casa e de um sol. Enquanto está fazendo isso anote o que você tem de fazer para realizar o trabalho. Isso poderia ser feito de maneiras diferentes? Lincoln Souza Rocha (POO - 2011.2) 19 Interação entre Objetos • Objetos podem se comunicar chamando os métodos uns dos outros Lincoln Souza Rocha (POO - 2011.2) 20 Projeto Picture Código Fonte • Toda classe possui uma código fonte associado • O código fonte de uma classe determina a estrutura e o comportamento (os campos e os métodos) de cada um dos objetos dessa classe Lincoln Souza Rocha (POO - 2011.2) 21 Valores de Retorno • Métodos podem retornar informações sobre um objeto por meio de uma valor de retorno Lincoln Souza Rocha (POO - 2011.2) 22 Projeto Lab-Classes Objetos como Parâmetro • Objetos podem ser passados como parâmetros Lincoln Souza Rocha (POO - 2011.2) 23 Programação Orientada a Objetos (Cód. ES006 / Sem. 2011-2 ) Universidade Federal do Ceará – UFC Campus de Quixadá Engenharia de Software Prof. Lincoln Souza Rocha (lincolnrocha@ufc.br)