A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Introdução à Programação.

Apresentações semelhantes


Apresentação em tema: "Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Introdução à Programação."— Transcrição da apresentação:

1 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Introdução à Programação OO Usando Java Profa. Isabel Harb Manssour (Material adaptado das aulas dos Profs.: Luciana Nedel, Júlio Machado, Bernardo Copstein e Marcelo Cohen) zConceitos básicos de OO zVisualizando os conceitos zMétodos zConstrutores zObjetos zExercícios

2 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zObjetivos da Programação OO é gerar programas que sejam: ylegíveis e de fácil compreensão yreutilizáveis yde fácil manutenção yobtidos de forma produtiva

3 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zO modelo conceitual da P.O.O. é chamado de Modelo de Objetos e possui quatro elementos principais: yAbstração yEncapsulamento yModularidade yHierarquia

4 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zAbstrações yConsistem em capturar as informações essenciais das entidades ou objetos envolvidos no contexto do sistema sendo desenvolvido yConcentra-se, basicamente, na visão externa do objeto separando seu comportamento de sua implementação

5 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zDe uma forma simples, o projeto de um sistema orientado a objeto pode ser dividido em três etapas: yIdentificar as abstrações/entidades envolvidas no problema yIdentificar os serviços que cada uma destas entidades deverá ser capaz de fornecer yIdentificar os relacionamentos entre essas entidades

6 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zEncapsulamento yÉ definido como uma técnica para minimizar as interdependências entre módulos, através da definição de interfaces externas yA idéia de uma caixa preta xNão é necessário saber os detalhes de funcionamento interno, mas sim como utilizar yEncapsular é esconder como as coisas funcionam ( data hiding ) por trás de uma interface externa. xEx.: caixa automático Como ele é implementado internamente? Utilizamos através de operações bem conhecidas

7 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zExemplo1 (abstração): xGuardar e consultar informações sobre a carga horária de professores Professor nome matrícula cargaHorária getNome getMatricula getChsemanal getChmensal Dados Operações Classe

8 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zExemplo2 (abstração): xGuardar e consultar informações sobre a carga horária dos 60 professores da FACIN Professor nome matrícula cargaHorária getNome getMatricula getChsemanal getChmensal FACIN endereço listaProfs impListaProfs insereProf 60

9 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zDe uma forma prática as abstrações são descritas por classes zClasse: yDescrição genérica de uma família de objetos yModelo que descreve uma abstração e a partir do qual podemos criar (instanciar) objetos (entidades) de um dado tipo (ou pertencentes a uma dada classe) yUma classe é um tipo definido pelo usuário que contém o molde, a especificação dos objetos; analogamente, é o mesmo que o tipo inteiro significa para as variáveis declaradas como inteiros

10 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zClasse: yA classe envolve, associa funções/operações e dados, controlando o acesso a estes yNo exemplo, professor é uma classe com os atributos nome, matrícula e carga horária e seus métodos seriam funções para alterar e/ou consultar estes dados yResumindo: uma classe determina um conjunto de objetos com propriedades e comportamentos semelhantes

11 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zDefinir uma classe implica em especificar os seus dois tipos de elementos: y Atributos (ou variáveis) xElementos que diferenciam objetos de uma mesma classe y Métodos (ou funções) xOperações realizáveis sobre a classe xMétodos operam sobre os atributos

12 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zInstâncias: yobjetos associados a cada classe zAtributos: ydeterminam o estado de um objeto zMétodos: ydeterminam o comportamento dos objetos zObjeto = instância de uma classe yDepois de criado, conterá todas as variáveis incluídas na definição da sua classe

13 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO Professor nome: string matrícula: int cargaHorária: int nome: Maria matrícula: 110 cargaHorária: 12 nome: José matrícula: 123 cargaHorária: 40 Objetos

14 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zObjeto: yum objeto consiste de uma memória privada e de um conjunto de operações ou, em outras palavras, de um conjunto de estruturas de dados e de rotinas que agem sobre essas estruturas. A natureza de um objeto e suas operações dependem do tipo de componente que ele representa. zMensagem: yuma mensagem é uma requisição para um objeto executar uma de suas operações (um objeto chama um método de outro objeto). Uma mensagem determina uma ação a ser executada, mas não a forma pela qual esta ação será executada.

15 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Operações / Métodos / Interface Dados / Propriedades / Atributos Objeto Interface pública declara as operações permitidas Público Acesso aos dados é feito através da chamada de um método Privado Conceitos básicos de OO zObjeto - representação

16 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Objeto Operações: getNome getMatricula getChsemanal getChmensal Dados nome matrícula cargaHorária Conceitos básicos de OO zExemplo: Professor

17 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Todo o acesso aos dados é feito através da chamada a um método definido pelo objeto Mudanças na implementação interna do objeto (que preservem a sua interface externa) não afetam o resto do sistema Objeto A interface (pública) de um objeto declara todas as operações permitidas (métodos) Conceitos básicos de OO zEncapsulamento

18 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zEncapsulamento - benefícios ySegurança xProtege os objetos de terem seus atributos corrompidos por outros objetos, pois o acesso a estrutura interna não é permitido yIndependência xEscondendo seus atributos, um objeto protege outros de complicações de dependência da estrutura interna xPor exemplo: alterações de tipos de dados internos a classe ou de implementação dos métodos não se refletem na interface, pois os objetos só precisam conhecer a interface externa definida

19 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Conceitos básicos de OO zEncapsulamento x Abstração yAbstração e encapsulamento são conceitos complementares yEnquanto abstração refere-se a visão externa do objeto, encapsulamento preocupa-se em ocultar as variáveis e a implementação do comportamento do objeto de maneira a garantir a transparência do mesmo em relação ao usuário yAs idéias de encapsulamento e abstração implicam em uma organização das estruturas de dados e do código em duas partes: interface e implementação

20 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Emissor (cliente) Objetos interagem e se comunicam através de mensagens... Conceitos básicos de OO zMensagens Receptor (servidor)

21 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour... as mensagens identificam os métodos a serem executados no objeto receptor Conceitos básicos de OO zMétodos

22 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Visualizando os conceitos class Professor { String nome; int matricula; int cargaHoraria; Professor(String n,int mat,int chor){ nome = n; matricula = mat; cargaHoraria = chor; } String getNome(){ return(nome); }

23 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Visualizando os conceitos int getMatricula(){ return(matricula); } int getChsemanal(){ return(cargaHoraria); } float getChmensal(){ return(cargaHoraria * (float)4.5); }

24 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Visualizando os conceitos class TestaProfessor{ static public void main(String args[]){ Professor p1; Professor p2; p1 = new Professor("Ze",4423,35); p2 = new Professor("Elisa",5562,20); System.out.println("Nome:"+p1.getNome()+ " Ch/Mens:"+p1.getChmensal()); System.out.println("Nome:"+p2.getNome()+ " Ch/Mens:"+p2.getChmensal()); }

25 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Visualizando os conceitos Professor String nome int matricula int cargaHoraria Professor(String,int,int) String getNome() int getMatricula() int getChsemanal() int getChmensal() Propriedades Interface p2 Elisa Professor(String,int,int) String getNome() int getMatricula() int getChsemanal() int getChmensal() OBJETOSOBJETOS p1 Ze Professor(String,int,int) String getNome() int getMatricula() int getChsemanal() int getChmensal()

26 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Métodos zDefinição de método tipo nome_do_método (arg1, arg2, …, argn) { // Código return valor ; }

27 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Métodos TestaProfessor (emissor) Objetos interagem e se comunicam através de mensagens, que identificam os métodos a serem executados no objeto receptor zMensagens p1 (receptor) getNome

28 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Construtores zÉ o método invocado cada vez que um novo objeto é criado - método de inicialização. zCaracterísticas básicas: yé sempre do tipo void ypossui sempre o mesmo nome da classe ypode ter argumentos ou não

29 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Construtores zExemplos: Professor(String n,int mat,int chor){ nome = n; matricula = mat; cargaHoraria = chor; } Professor(){ nome = ; matricula = 0; cargaHoraria = 0; }

30 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Objetos zCriando objetos: // Aloca memória para armazenar a referência a um objeto // do tipo Professor Professor p1; // Cria um objeto Professor na memória e seta a variável // p1 para instanciar o mesmo p1 = new Professor("Ze",4423,35); ou Professor p1 = new Professor("Ze",4423,35); Professor p2 = p1; // A variável p2 aponta para o // objeto p1

31 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Exercícios 1)Defina uma classe Ponto (Ponto.java) com as seguintes características: yArmazene um ponto 2D (formato double); yPermita a criação de um objeto Ponto a partir de um par de coordenadas; yPermita deslocar o ponto dx unidades para a direita e dy unidades para cima; yRetorne o valor das coordenadas; yImprima na tela a posição do ponto P. OBS: Não implemente o método main()

32 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Exercícios 2)Defina a classe TestaPonto para testar a classe implementada no exercícios 1. A classe deve: yinstanciar 2 objetos Ponto (p1 e p2) ydeslocar o ponto p1 duas unidades para cima e três unidades para a direita yvisualizar no monitor a posição dos pontos criados

33 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Exercícios 3) Identifique as abstrações, os serviços que devem ser oferecidos por cada uma, bem como os relacionamentos entre as mesmas de maneira que componham um sistema que resolve o problema proposto: yUm editor gráfico é capaz de criar diagramas compostos por retas, quadrados e strings de texto. As retas são definidas por dois pontos (x1,y1 e x2,y2). Os quadrados são definidos pelos pontos extremos a diagonal principal e os strings de texto por um ponto e pelo texto propriamente dito.

34 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Respostas dos exercícios 1) class Ponto { // Coordenadas do ponto (atributos) double x; double y; // Cria um ponto a partir de um par de coordenadas Ponto (double xVal, double yVal) { x = xVal; y = yVal; } // Permite deslocar o ponto para cima e para direita void Desloca (double dx, double dy) { x = x + dx; y = y + dy; }

35 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Respostas dos exercícios // Retorna o valor da coordenada x double getX() { return(x); } // Retorna o valor da coordenada x double getY() { return (y); } // Apresenta a posição do ponto void mostra( ) { System.out.println("Ponto na posicao " + x + "," + y); }

36 Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Respostas dos exercícios 2) class TestaPonto { public static void main (String[] args) { Ponto p1 = new Ponto(0.0, 1.0); Ponto p2 = new Ponto(5.0, 6.0); p1.Desloca(3.0, 2.0); p1.mostra(); p2.mostra(); }


Carregar ppt "Introdução à Programação OO Usando Java - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour Introdução à Programação."

Apresentações semelhantes


Anúncios Google