• Document: Objetivos Definir conceitos de orientação a objetos: o abstração, encapsulamento, pacotes. Discutir reutilização de cód...
  • Size: 141.59 KB
  • Uploaded: 2019-05-17 14:07:25
  • Status: Successfully converted


Some snippets from your converted document:

Módulo 02 Programação Orientada a Objetos Última atualização: 07/06/2010 1 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 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 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 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 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 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 Declarando atributos • Sintaxe básica de um atributo: [<modificadores>] <tipo> <nome> [=<valor_inicial>]; • Exemplo: public class Atributos { private int x; private float y = 10000.0F; private String name = "Stephen Malkmus"; } 8 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 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 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 Ocultamento de Informação(cont.) A solução: • Código cliente deve usar getters/setters para acessar dados internos: 12 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 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 Declarando Construtores • Sintaxe básica de um construtor: [<modificador>]<nome_cla

Recently converted files (publicly available):