Programação Orientada a Objetos e Java - Introdução. Carlos Lopes



Documentos relacionados
Implementando uma Classe e Criando Objetos a partir dela

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Exercícios de Revisão Java Básico

Itens estruturais/caso de uso. Itens estruturais/classe ativa. Itens estruturais/componente. Itens estruturais/artefatos. Itens comportamentais

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

2 Orientação a objetos na prática

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores

Análise de Programação

Análise e Projeto Orientados por Objetos

Programação por Objectos. Java

Curso de Aprendizado Industrial Desenvolvedor WEB

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Técnicas de Programação II

FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS- REVISÃO

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Desenvolvimento OO com Java Orientação a objetos básica

Especificação do Trabalho

Como usar a documentaçã

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Noções sobre Objetos e Classes

Objetivos do Curso. Você será capaz de:

Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v

Programação Orientada a Objetos (DPADF 0063)

Estrutura Condicional em Java

Programação Orientada a Objetos (DPADF 0063)

Capítulo 8. Introdução UML

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Programação Orientada a Objetos. Encapsulamento

Orientação a Objetos e a Linguagem Java

Computação II Orientação a Objetos

Python Intermediário. terça-feira, 4 de agosto de 15

UML: Diagrama de Classes

UML: Diagrama de Casos de Uso, Diagrama de Classes

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Adicionando Caixas de Verificação no seu Programa Java

Reuso com Herança a e Composiçã

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Material de Apoio 5. int getres() { return res; O que estas classes possuem em comum? 1) 2) 3)

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Aula 3 Objeto atual com referencia THIS e Classes com Herança

Algoritmos e Programação II. Sobrecarga

Classes Abstratas e Interfaces

Introdução a Java. Hélder Nunes

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TÉCNICO EM INFORMÁTICA DISCIPLINA:

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Resolução da lista de exercícios de casos de uso

1. Apresentação Objetivos

ÍNDICE. Delphi... 3 CAPÍTULO 1 INTRODUÇÃO CAPÍTULO 2 INSTALANDO O DELPHI... 10

Programação Orientada a Objetos em Java. Herança

Bacharelado em Ciência e Tecnologia BC Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

Uma visão mais clara da UML Sumário

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.

insfcanceof new public switch transient while byte continue extends for int null

Herança. Alberto Costa Neto DComp - UFS

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Projeto de Software Orientado a Objeto

2ª Lista de Exercícios Orientação a Objetos

Início Rápido para o Templo

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Entender princípios de projeto. Capacitação para construir GUIs. Entender os pacotes que contém componentes de GUI, e as classes e interfaces de

Encapsulamento de Dados

Capítulo 4. Packages e interfaces

PCS LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

JAVA APLICAÇÕES GRÁFICAS Propriedade Utilizada: FontSizeAnimation

Programação Orientada a Objetos (DPADF 0063)

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Prototype, um Design Patterns de Criação

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados:

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Tipos de Dado Abstrato: Listas, Filas e Pilhas

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

LASERTECK SOFTECK FC MANUAL DO USUÁRIO

CURSO DE PROGRAMAÇÃO EM JAVA

Especificação do 3º Trabalho

PROGRAMAÇÃO EM C# COM VISUAL STUDIO.NET

Usando o do-file editor Automatizando o Stata

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Programação Orientada a Objetos em Java

Display de Cristal Líquido

Configurar o Furbot no Eclipse

Programação de Computadores e Robocode.

Programação Orientada a Objeto

Primeiros passos das Planilhas de Obra v2.6

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

Java. Marcio de Carvalho Victorino

A Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

AULA 15 Plugin Preenchimento de Células

Transcrição:

Programação Orientada a Objetos e Java - Introdução Carlos Lopes

POO e Java Objetivo: proporcionar uma visão dos conceitos de POO e do seu uso na estruturação dos programas em Java. Classes e objetos em Java As duas principais partes de uma classe ou objeto: comportamento e atributo. Herança de classes e a forma como ela afeta o projeto de programas.

Pensando em Objetos Exemplo do mundo real Entrega de flores a um parente.

Objetos e Classes POO apresenta vários conceitos e aspectos que facilitam o processo de criação e uso de objetos. Quando você escreve um programa em uma linguagem OO você define classes de objetos. Uma classe em Java é uma fábrica de objetos.

Objetos e Classes Exemplo: você pode ter uma classe Árvore que descreve os aspectos de todas as árvores (tem folhas e raízes, cresce, produz clorofila). A classe serve como um modelo abstrato de uma árvore. Uma classe pode ser vista como uma implementação de um TAD. Para cortar uma árvore você precisa ter uma instância concreta daquela árvore.

Objetos e Classes Uma vez que você tenha uma classe Árvore você pode criar várias instâncias diferentes daquela árvore (baixa, alta,...) comportando-se e sendo reconhecidas como árvore. Mais uma vez: uma classe pode ser vista como uma fábrica de objetos ou instâncias concretas da classe.

Objetos e Classes Exemplo: A classe Botão para o elemento da interface gráfica botão. A classe Botão define os aspectos de um botão e seu comportamento Aspectos de um botão: rótulo, tamanho, aparência. Comportamento: Ativado com um simples ou duplo click? Altera sua cor quando selecionado? O que ele faz quando é ativado?

Objetos e Classes Exemplo: A classe Botão (cont.) Uma vez que você tenha a classe Botão você pode criar vários objetos desta classe. Os objetos criados possuem os mesmos aspectos existentes na classe Botão. Entretanto, podem ter aparências e comportamentos diferentes baseados naquilo que você quer que um determinado botão faça.

Objetos e Classes Quando você escreve um programa Java você projeta e constrói um conjunto de classes. Quando seu programa é executado os objetos daquelas classes são criados e descartados quando necessários. Sua tarefa como programador Java é criar um conjunto de classes que possa proporcionar os resultados desejados.

Objetos e Classes O ambiente Java apresenta uma biblioteca de classes que implementam muito do comportamento básico que você necessitará. Funções matemáticas, vetores, strings, gráficos, classes para desenvolvimento de aplicações cliente/servidor etc. Num programa muito simples você pode ter uma única classe que usa as outras classes da biblioteca. Num programa mais sofisticado você provavelmente necessitará criar mais de uma classe que apresente interações entre elas.

Comportamentos e Atributos Geralmente toda classe em Java é constituída por dois componentes: atributos e comportamentos. Os atributos são propriedades que diferenciam um objeto do outro e determinam sua aparência, estado e outras qualidades do objeto.

Comportamentos e Atributos Exemplo: vamos criar uma classe Motocicleta. Os atributos desta classe podem ser: Cor: vermelho, preta,... Fabricante: Honda, Yamaha,...... Os Atributos são definidos por variáveis denominadas variáveis de instância.cada objeto pode ter valores diferentes para suas variáveis de instância.

Atributos As variáveis de instância podem receber valores quando o objeto é criado e permanecer com estes valores durante o tempo de vida do objeto ou podem mudar durante a execução do programa. Além das variáveis de instância existem as variáveis de classe. Diferente das variáveis de instância, os valores das variáveis de classe são armazenados na classe. Veremos com mais detalhes tais variáveis em aulas futuras.

Comportamento O comportamento da classe define o que os objetos da classe devem fazer quando recebem algum pedido (mensagem). Exemplo: Continuando com a classe Motocicleta, alguns comportamentos associados a esta classe incluem: Liga o motor Desliga o motor Acelere Mude a marcha

Comportamento Para definir o comportamento da classe você cria métodos. Métodos são funções definidas dentro da classe. Métodos nem sempre afetam um único objeto. Assim como existem variáveis de instância e variáveis de classe, também tem-se métodos de instância e métodos de classe. Os Métodos de instância aplicam-se a objetos da classe. Os métodos de classe aplicam-se a classes.

Criando uma Classe Class Motocicleta { String Fabricante; String Cor; Boolean estadodomotor; public Motocicleta(nomeDoFabricante, nomedacor){ Fabricante = nomedofabricante; Cor = nomedacor; } void funcionamotor( ) { if (estadodomotor == true) System.out.println( O motor já está funcionando. ) else { estadodomotor = true; System.out.println( O motor agora está funcionando. ) } } }

Criando uma Classe Antes de compilar o código presente na transparência anterior vamos acrescentar mais um método que mostra os valores das variáveis de instância de um objeto motocicleta. void mostraatributos( ){ } System.out.println( Esta motocicleta é uma + fabricante + + cor); if (estadodomotor == true) else System.out. println( O motor está funcionando. ); System.out.println( O motor está desligado. )

Criando uma Classe Após compilar o código descrito anteriormente tente executá-lo. Você obterá a seguinte mensagem: In class Motocicleta: void main(string argv[]) is not defined Java assumiu que a classe é um aplicativo e procurou por um Método main. Entretanto, a classe não possui um método main. Para criar objetos da classe Motocicleta você necessitará criar um aplicativo Java que use esta classe ou adicionar um método main a ela.

Criando uma Classe public static void main(string args[ ]){ Motocicleta m = new Motocicleta( Yamaha RZ135, Vermelha ); m.mostraatributos( ); m.funcionamotor( ); m.mostraatributos( ); m.funcionamotor( ); }

Herança Herança é um conceito primordial em POO A herança é um mecanismo poderoso que permite que você possa escrever uma classe especificando apenas aqueles aspectos que a diferem de alguma outra classe existente. Para usufruir da herança todas as classes devem estar dispostas segundo uma hierarquia.

Herança: Exemplo Object Veículo VeiculoMotorizado VeiculoNaoMotorizado

Herança Conceitos: Superclasse e Subclasse Exemplo: criando uma versão de Botão com rótulo pré-definido. Tudo que se tem a fazer é definir uma classe que seja subclasse de Botão. A subclasse herdará automaticamente todo o comportamento definido na classe Botão. Tudo que você deve fazer é especificar na subclasse o comportamento que a difere de Botão.

Criando uma Hierarquia de Classes Um planejamento na organização das classes fazse necessário. Quando desenvolvendo suas classes numa hierarquia você pode fatorar informação comum em superclasses. Assim cada subclasse usa a informação da superclasse. Mudando ou inserindo uma classe numa hierarquia superior faz com que as mudanças sejam automaticamente sentidas nas classes inferiores.

Criando uma Hierarquia de Classes Exemplo: Suponha que já temos implementado a classe Motocicleta e queremos agora criar a classe Carro. Carro e Motocicleta têm muitos aspectos em comum. Ao invés de abrir um arquivo Carro e copiar várias informações definidas na classe Motocicleta, um plano melhor seria fatorar as propriedades comuns numa hierarquia de classes mais geral.

Criando uma Hierarquia de Classes VeiculoMotorizado VeiculoMotorizadoDe2Rodas VeiculoMotorizadoDe4Rodas Motocicleta Scooter Carro

Criando uma Subclasse Provavelmente o exemplo mais típico de criação de uma subclasse ocorre quando criamos um applet. Todos os applets são subclasses da classe Applet (pacote AWT) ou JApplet (pacote Swing). Quando você escreve um applet existem vários métodos definidos na superclasse que você comumente deverá redefinir. Um destes métodos é o método paint() que mostra seu applet na tela.

Criando uma Subclasse: Exemplo public class MeuPrimeiroApplet extends java.applet.applet{ Font f = new Font( TimesRoman,Font.Bold,36); public void paint(graphics g){ g.setfont(f); g.setcolor(color.red); g.drawstring( Meu Primeiro Applet!,5,50); } }

Criando uma Subclasse: Exemplo A compilação da classe descrita anteriormente gerará erros. É necessário importar as classes Graphics, Font e Color. Ou import java.awt.graphics; import java.awt.font; import java.awt.color; import java.awt.*;

Funcionamento da Herança Como é que objetos de uma classe podem obter variáveis e métodos das classes hierarquicamente superiores? Para variáveis de instância, quando você cria um objeto de uma classe você tem um slot para cada variável definida na classe corrente e para cada variável definida em todas as suas superclasses.

Funcionamento da Herança Como é que objetos de uma classe podem obter variáveis e métodos das classes hierarquicamente superiores? Para métodos: novos objetos têm acesso a todos os nomes de métodos definidos na sua classe e em suas superclasses. Quando um método é chamado Java procura inicialmente pela definição do método na classe do objeto. Se o método não se encontra, ele procura pelo método na superclasse. Se ele não se encontra na superclasse ele procura pelo método na superclasse da superclasse e assim sucessivamente até encontrar ou não.

Funcionamento da Herança

Associações entre Classes Duas principais associações: agregação e composição. Agregação: estabelece uma relação todo-parte entre classes, sendo que a parte pode existir sem o todo. Exemplo: Carro e Roda. Uma Roda é parte de um Carro, porém pode a Roda existe por si só fora do Carro. Você pode por exemplo remover a roda de um carro para colocar em outro. Composição: estabelece uma relação todo-parte entre classes, sendo que a parte NÃO existe sem o todo. Pedido e Itens de Pedido. Se você destruir o Pedido, os Itens são destruidos junto, eles não tem sentido se não houver um Pedido.