Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/ PDF Free Download
Download "Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010"
Maria Antas Caires
1 Módulo 02 Programação Orientada a Objetos Última atualização: 07/06/2010 1
2 Objetivos Definir conceitos de orientação a objetos: o abstração, encapsulamento, pacotes. Discutir reutilização de código em Java. Definir os conceitos: o classe, membro, atributo, método, construtor, pacote e import 2
3 Objetivos (cont.) Usar os modificadores de acesso private e public levando em consideração conceitos de encapsulamento. Invocar métodos em um objeto em particular. Utilizar a documentação on-line da Interface de Programação de Aplicativos (API) da linguagem Java. 3
4 Abstração Funções Escrever um algoritmo uma única vez para ser usado em diversas situações. Objetos Agrupam um conjunto relacionado de atributos e funções (conhecidas como métodos ou comportamento no jargão da POO). Frameworks e APIs Extenso grupo de objetos que suporta uma atividade complexa: Frameworks podem ser utilizados em sua forma original ou modificados para estender um comportamento básico. 4
5 Classes como Modelo para Objetos No processo de manufatura, um modelo descreve um dispositivo do qual muitos dispositivos físicos são construídos. Em software, uma classe é uma descrição de um objeto: Uma classe descreve os dados incluídos em cada objeto Uma classe descreve os comportamentos que cada objeto exibe. 5
6 Classes como Modelo para Objetos(Cont.) Na tecnologia Java, as classes suportam três características chave da programação orientada a objetos (POO): Encapsulamento Herança Polimorfismo. 6
7 Declarando Classes em Java Sintaxe básica de uma classe Java: <modificadores> class <nome_classe>{ [<declarações_atributos>] [<declarações_construtores>] [<declarações_métodos>] } Exemplo: public class Veiculo { private double cargamaxima; public void setcargamaxima(double valor) { cargamaxima = valor; } } 7
8 Declarando atributos Sintaxe básica de um atributo: Exemplo: [<modificadores>] <tipo> <nome> [=<valor_inicial>]; public class Atributos { private int x; private float y = F; private String name = "Stephen Malkmus"; } 8
9 Declarando Métodos Sintaxe básica de um método: [<modificadores>]<tipo_retorno><nome>[<lista_argumentos>]){ } [<instruções>] Exemplo: public class Cachorro { private int peso; public int getpeso() { return peso; } public void setpeso(int novopeso){ peso = novopeso; } } 9
10 Acessando Membros de Objetos Notação dot : <referência>.<membro> Esta notação é utilizada para acesso a membros dos objetos, incluindo atributos e métodos. Exemplos:... d.setpeso(42); d.peso = 42; // permitido apenas se peso for público. 10
11 Ocultamento de Informação O Problema: Código cliente tem acesso direto aos dados internos de Data: public class TesteData { public static void main(string [] args) { Data d = new Data(); d.dia = 32; // dia inválido d.mes = 2; d.dia = 30; // plausível, mas errado. d.dia = d.dia + 1; // sem verificação de limite superior }} 11
12 A solução: Ocultamento de Informação(cont.) Código cliente deve usar getters/setters para acessar dados internos: 12
13 Ocultamento de Informação(cont.) public class TesteData { public static void main(string[] args) { Data d = new Data(); d.setdia(32); // dia inválido, retorna false d.setmes(2); d.setdia(30); // plausível,mas errado, setdia() retorna false d.setdia(d.getdia() + 1); // retorna false se teste limite necessita ser feito } } 13
14 Encapsulamento Esconde detalhes de implementação de uma classe. Força o usuário a utilizar uma interface Torna a manutenção de código mais fácil. 14
15 Declarando Construtores Sintaxe básica de um construtor: [<modificador>]<nome_classe>([<lista_argumentos>]){ [<instruções>] } Exemplo: 1 public class Cachorro { 2 private int peso; 3 4 public Cachorro() { 5 peso = 42; 6 } 7 8 public int getpeso() { 9 return peso; 10 } public void setpeso(int novopeso) { 12 peso = novopeso; 13 } 14} 15
16 O Construtor Default Existe pelo menos um construtor em toda classe. Se o programador não fornecer qualquer construtor, o construtor default é utilizado automaticamente: O construtor default não possui argumentos Seu corpo é vazio. Permite a criação de objetos com new Xxx()sem a necessidade de se escrever um construtor. 16
17 Layout do Arquivo Fonte Sintaxe básica de um arquivo fonte em Java: [<declaração_pacote>] [<declarações_import>] <declaração_classe>+ Exemplo: RelatorioCapacidadeVeiculo.java: package transportadora.relatorios; import transportadora.dominio.*; import java.util.list; import java.io.*; public class RelatorioCapacidadeVeiculo{ private List veiculos; public void gerarrelatorio(writer output) {... } } 17
18 Pacotes de Software Pacotes ajudam no gerenciamento de grandes sistemas de software. Pacotes contém classes e sub-pacotes. 18
19 A Instrução package Sintaxe básica da instrução package : package <nome_pacote_raiz>[.<nome_subpacote>].*; Exemplos: package transportadora.relatorios; 19
20 A Instrução package(cont.) A declaração de um pacote é feita no início do arquivo fonte. Apenas uma declaração de pacote por arquivo fonte. Se nenhum pacote for declarado, então a classe pertence ao pacote default. Nomes de pacotes são hierárquicos e separados por pontos. 20
21 A Instrução import Sintaxe básica da instrução import: import <nome_pacote>[.<nome_subpacote>].<nome_classe>; Ou import <nome_pacote>[.<nome_subpacote>].*; Exemplos: import transportadora.dominio.*; import java.util.list; import java.io.*; Precede qualquer declaração de classe. Mostra ao compilador onde encontrar as classes a serem utilizadas. 21
22 A Instrução import(cont.) Instruções import e package se aplicam a todas as classes dentro de um arquivo de código fonte. o Em outras palavras, não existe como declarar várias classes em um arquivo e tê-las em pacotes diferentes ou usar diferentes instruções import para cada uma das classes. 22
23 Layout de Diretórios e Pacotes Pacotes são armazenados na árvore de diretórios contendo o nome do pacote. Exemplo: os pacotes da aplicação transportadora : 23
24 Desenvolvimento Compilando utilizando -d cd projetosjava/projetotransportadora/src javac -d../class transportadora/dominio/*.java 24
25 Utilizando a Documentação da API Java Um conjunto de arquivos HTML fornece informações sobre a API. Um frame descreve um pacote e contém hiperlinks para descrição de informação para cada classe no pacote. A documentação de uma classe inclui uma hierarquia de classes, uma descrição da classe, uma lista de variáveis membros, uma lista de construtores, etc... 25
26 Página Exemplo da Documentação da API 26
27 Revisão da Terminologia Classe O modelo de código fonte para um objeto em tempo de Execução. Objeto Instância de uma classe Atributo Um elemento de dados de um objeto. Também conhecido como : membro de dados, variável de instância, campo de dados. 27
28 Revisão da Terminologia (Cont.) Método Elemento comportamental de um objeto também conhecido como: algoritmo, função, procedimento. Construtor Construção parecida com método utilizada para iniciar novos objetos. Pacote Agrupamento de classes e/ou sub-pacotes. 28
Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos
Linguagem de Programação II Programação Orientada a Objetos Orientação a Objetos Prof. Alessandro Borges 2 Tópicos Introdução à Programação Orientada a Objetos Conceitos Objetivos Classes e Objetos Atributos