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

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

Introdução à Programação OO Usando Java Profa

Apresentações semelhantes


Apresentação em tema: "Introdução à Programação OO Usando Java Profa"— Transcrição da apresentação:

1 Introdução à Programação OO Usando Java Profa
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) Conceitos básicos de OO Visualizando os conceitos Métodos Construtores Objetos Exercícios

2 Conceitos básicos de OO
Objetivos da Programação OO é gerar programas que sejam: legíveis e de fácil compreensão reutilizáveis de fácil manutenção obtidos de forma produtiva

3 Conceitos básicos de OO
O modelo conceitual da P.O.O. é chamado de “Modelo de Objetos” e possui quatro elementos principais: Abstração Encapsulamento Modularidade Hierarquia

4 Conceitos básicos de OO
Abstrações Consistem em capturar as informações essenciais das entidades ou objetos envolvidos no contexto do sistema sendo desenvolvido Concentra-se, basicamente, na visão externa do objeto separando seu comportamento de sua implementação

5 Conceitos básicos de OO
De uma forma simples, o projeto de um sistema orientado a objeto pode ser dividido em três etapas: Identificar as abstrações/entidades envolvidas no problema Identificar os serviços que cada uma destas entidades deverá ser capaz de fornecer Identificar os relacionamentos entre essas entidades

6 Conceitos básicos de OO
Encapsulamento É definido como uma técnica para minimizar as interdependências entre módulos, através da definição de interfaces externas A idéia de uma “caixa preta” Não é necessário saber os detalhes de funcionamento interno, mas sim como utilizar Encapsular é esconder como as coisas funcionam (data hiding) por trás de uma interface externa. Ex.: caixa automático Como ele é implementado internamente? Utilizamos através de operações bem conhecidas

7 Conceitos básicos de OO
Exemplo1 (abstração): Guardar e consultar informações sobre a carga horária de professores Professor nome matrícula cargaHorária getNome getMatricula getChsemanal getChmensal Classe Dados Operações

8 Conceitos básicos de OO
Exemplo2 (abstração): Guardar 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 Conceitos básicos de OO
De uma forma prática as abstrações são descritas por classes Classe: Descrição genérica de uma família de objetos “Modelo” 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) Uma 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 Conceitos básicos de OO
Classe: A classe envolve, associa funções/operações e dados, controlando o acesso a estes No 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 Resumindo: uma classe determina um conjunto de objetos com propriedades e comportamentos semelhantes

11 Conceitos básicos de OO
Definir uma classe implica em especificar os seus dois tipos de elementos: Atributos (ou variáveis) Elementos que diferenciam objetos de uma mesma classe Métodos (ou funções) Operações realizáveis sobre a classe Métodos operam sobre os atributos

12 Conceitos básicos de OO
Instâncias: objetos associados a cada classe Atributos: determinam o estado de um objeto Métodos: determinam o comportamento dos objetos Objeto = instância de uma classe Depois de criado, conterá todas as variáveis incluídas na definição da sua classe

13 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 Conceitos básicos de OO
Objeto: um 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. Mensagem: uma 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 Conceitos básicos de OO
Objeto - representação Operações / Métodos / Interface Interface pública declara as operações permitidas Público Dados / Propriedades / Atributos Objeto Acesso aos dados é feito através da chamada de um método Privado

16 Conceitos básicos de OO
Exemplo: Professor Operações: getNome getMatricula getChsemanal getChmensal Dados nome matrícula cargaHorária Objeto

17 Conceitos básicos de OO
Encapsulamento A interface (pública) de um objeto declara todas as operações permitidas (métodos) 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

18 Conceitos básicos de OO
Encapsulamento - benefícios Segurança Protege os objetos de terem seus atributos corrompidos por outros objetos, pois o acesso a estrutura interna não é permitido Independência “Escondendo” seus atributos, um objeto protege outros de complicações de dependência da estrutura interna Por 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 Conceitos básicos de OO
Encapsulamento x Abstração Abstração e encapsulamento são conceitos complementares Enquanto 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 As 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 Conceitos básicos de OO
Mensagens Objetos interagem e se comunicam através de mensagens... Emissor (cliente) Receptor (servidor)

21 Conceitos básicos de OO
Métodos ... as mensagens identificam os métodos a serem executados no objeto receptor

22 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 Visualizando os conceitos
int getMatricula(){ return(matricula); } int getChsemanal(){ return(cargaHoraria); float getChmensal(){ return(cargaHoraria * (float)4.5);

24 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 Visualizando os conceitos
Professor String nome int matricula int cargaHoraria Professor(String,int,int) String getNome() int getMatricula() int getChsemanal() int getChmensal() Propriedades Interface p1 Ze 4423 35 Professor(String,int,int) String getNome() int getMatricula() int getChsemanal() int getChmensal() p2 Elisa 5562 20 Professor(String,int,int) String getNome() int getMatricula() int getChsemanal() int getChmensal() O B J E T S

26 Métodos Definição de método tipo nome_do_método (arg1, arg2, … , argn)
{ // Código return valor ; }

27 Métodos Mensagens Objetos interagem e se comunicam através de mensagens, que identificam os métodos a serem executados no objeto receptor getNome TestaProfessor (emissor) p1 (receptor)

28 Construtores É o método invocado cada vez que um novo objeto é criado - método de inicialização. Características básicas: é sempre do tipo void possui sempre o mesmo nome da classe pode ter argumentos ou não

29 Construtores Exemplos: Professor(String n,int mat,int chor){ nome = n;
matricula = mat; cargaHoraria = chor; } Professor(){ nome = “”; matricula = 0; cargaHoraria = 0;

30 Objetos Criando 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 Exercícios OBS: Não implemente o método main()
1) Defina uma classe Ponto (Ponto.java) com as seguintes características: Armazene um ponto 2D (formato double); Permita a criação de um objeto Ponto a partir de um par de coordenadas; Permita deslocar o ponto dx unidades para a direita e dy unidades para cima; Retorne o valor das coordenadas; Imprima na tela a posição do ponto P. OBS: Não implemente o método main()

32 Exercícios 2) Defina a classe TestaPonto para testar a classe implementada no exercícios 1. A classe deve: instanciar 2 objetos Ponto (p1 e p2) deslocar o ponto p1 duas unidades para cima e três unidades para a direita visualizar no monitor a posição dos pontos criados

33 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: Um 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 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 Respostas dos exercícios
// Retorna o valor da coordenada x double getX() { return(x); } double getY() return (y); // Apresenta a posição do ponto void mostra( ) System.out.println("Ponto na posicao " + x + "," + y);

36 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 Profa"

Apresentações semelhantes


Anúncios Google