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

Slides:



Advertisements
Apresentações semelhantes
|Introdução a Java para programadores Telis. Jogo de Dados simples O jogo é jogado por dois jogadores. Cada jogador faz sua jogada (lança um dado), e.
Advertisements

TIPOS ABSTRATOS DE DADOS
JAVA Orientação a Objetos
Programação orientada a objetos
Programação Orientada a Objetos*
Prof. Thiago Pereira Rique
Interação entre objetos
Implementação Orientada a Objetos Prof. Rodrigo Rocha – UMC Prof
Orientação a Objetos: Encapsulamento e Classificação
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
Programação Básica em Java
Arrays Profa. Isabel Harb Manssour (Material adaptado das aulas dos Profs.: Luciana Nedel, Júlio Machado e Bernardo Copstein) Arrays Exercícios.
Introdução à Programação OO Usando Java Profa
Polimorfismo e Classes Abstratas Profa
Expressões, controle de fluxo, wrappers e strings Profa
Vector e Estruturas Encadeadas Profa
Herança Profa. Isabel Harb Manssour (Material adaptado das aulas dos Profs: Luciana Nedel e Júlio Machado) Packages (bibliotecas de classes) Atributos.
Wagner Santos C. de Jesus
1 Professor Rogério B. de Andrade - Aula 001- Dez/2008 Técnicas e Linguagem de Programação.
Membros estáticos.
Classes e objetos P. O. O. Prof. Grace.
Estrutura de Dados em Java
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
CRIANDO OBJETOS EM JAVA
Copyright Marcos L. Chaim 2005 Princípios de Projeto de Software Orientado a Objetos Segundo Semestre 2005 Marcos L. Chaim ACH Turma 02 EACH – USP.
JAVA: Conceitos Iniciais
Programação Orientada a Objetos com Java
JAVA Orientação a Objetos
Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Atributos, Encapsulamento e Interface em Java
Programação I Aula 2 (Métodos)
Métodos de Construção de Software: Orientação a Objetos
Linguagem de Programação JAVA
Introdução à Programação Orientada a Objetos com Java
Tipos Abstratos de Dados
Orientação a Objetos Parte I
Programação Orientada à Objetos
Programação Orientada a Objetos Curso de Engenharia da Computação Parte 03 – Conceitos Básicos III Prof. Fabricio Mota Oliveira
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
SISTEMAS DISTRIBUIDOS Aula 4
Wagner Santos C. de Jesus
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Programação Orientada a Objetos - Java
Implementação Orientada a Objetos – Aula 03
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Prof. Gilberto Irajá Müller
Orientação a Objetos usando Java
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Classes Abstratas e Interface
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Utilizando UML e Padrões Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Março de 2010.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Introdução a Orientação a Objetos
Conceitos de OO em Java Parte I
Polimorfismo - Desenvolvido pela Profa. Luciana Porcher Nedel e alterado pela Profa. Isabel Harb Manssour ▐ Polimorfismo ▐ Exemplo ▐ Classes Abstratas.
Características Cor Combustível Num_Portas Potencia Comportamentos Acelerar Feiar Acender farol Dar seta Buzinar Características Cor Combustível Num_Portas.
Laboratório de Programação II Método main Dados e Métodos de Classes.
Tipo Abstrato de Dados (TAD) Estrutura de Dados Professor: Rodrigo Alves Sarmento Professor: André Cypriano.
Estrutura de Dados Prof. André Cypriano M. Costa
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

Conceitos básicos de OO Mensagens Objetos interagem e se comunicam através de mensagens... Emissor (cliente) Receptor (servidor)

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

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);

Visualizando os conceitos int getMatricula(){ return(matricula); } int getChsemanal(){ return(cargaHoraria); float getChmensal(){ return(cargaHoraria * (float)4.5);

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()); }

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

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

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)

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

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

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

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()

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

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.

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;

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);

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(); }