Java para Desktop. Programação Orientada à Objetos 2 JSE

Documentos relacionados
Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Unidade: Classes Abstratas, Polimorfismo, Sobreposição e Interfaces

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Classe Abstrata e Interface

Linguagem de Programação III

A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas

Programação Java (nível intermediário) 4. Polimorfismo

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -

Linguagem de Programação II Herança

9 Classes Abstractas e Interfaces

Polimorfismo. O que é polimorfismo?

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Vejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,"Pa

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

AULA 16 HERANÇA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

POO29004 Programação Orientada a Objetos

Programação por Objectos. Java

Conceitos de Programação Orientada a Objetos

PROGRAMAÇÃO ORIENTADA A

Linguagem de Programação IV Introdução

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

Herança. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Computação II Orientação a Objetos

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Disciplina: Programação Orientada a Objetos

Introdução à Programação. Encapsulamento e Herança

Programação Orientada a Objetos Flávio de Oliveira Silva 144

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objetos

Programação Orientada a Objetos Relacionamentos entre classes

Programação Orientada a Objetos

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

Herança e Polimorfismo

Notas de Aula 04: Herança e polimorfismo.

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Encapsulamento. Alberto Costa Neto DComp - UFS

Introdução à Programação Orientada a Objetos. Programação Estruturada vs Programação Orientada a Objetos

PROGRAMAÇÃO I HERANÇA E POLIMORFISMO

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

Linguagem de Programação. Diagrama de classes

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

POO29004 Programação Orientada a Objetos

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

TIMTec. Introdução à programação em linguagem JAVA

Programação Orientada a Objetos JAVA - NETBEANS

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Linguagens de Programação Aula 12

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Polimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica

POO29004 Programação Orientada a Objetos

Herança e Propriedades

Linguagem de programação Programação Orientada a objetos

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

Lição 11 Herança, polimorfismo e interfaces

LÓGICA DE PROGRAMAÇÃO (JAVA) HERANÇA. Professor Carlos Muniz

Orientação a Objetos AULA 06

Interfaces e Classes Abstratas

Desenvolvimento Web TCC Turma A-1

Introdução ao Java. Prof. Herbert Rausch Fernandes

POO UML e Outros Conceitos. Prof. Vicente Paulo de Camargo

Programação Orientada a Objetos

Orientação a Objetos - Herança

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA

Modificadores de Acesso e Atributos de Classe

4 Conceito de Herança

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento

Classes e Objetos. Sintaxe de classe em Java

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.

Orientação a Objetos AULA 09

Transcrição:

Java para Desktop Programação Orientada à Objetos 2 JSE

Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona e oculta os detalhes internos sobre como ele executa os serviços.

Porque devemos encapsular? Exemplo: KM de um Carro Existe KM negativa?

Porque devemos encapsular? Carro c = new Carro(); c.km = -20;

Assim, para evitar esse tipo de problema, Encapsularemos o atributo KM da classe Carro. Mas como podemos encapsular?

1º- Encapsulamos restringindo o acesso direto a propriedade; private int km; 2º- Damos acesso a propriedade através de um método, onde não é possível valores negativos; public void setkm(int km) { if (km >= 0) this.km = km; }

3º- Criamos um carro utilizando o Encapsulamento; Carro c = new Carro(); c.setkm(-10); Dessa forma nunca teremos um carro com KM negativa.

Os métodos Getters e Setters Servirão como modo de acesso aos atributos encapsulados de uma classe.

Método Set Nomeamos um método acessor com set toda vez que este método for modificar algum campo ou atributo de uma classe; Como o valor de um atributo da classe será modificado, não é necessário que este método retorne nenhum valor, por isso, os métodos setters são void. Porém, obrigatoriamente, eles tem que receber um argumento que será o novo valor do campo.

Método Get Nomeamos um método acessor com get toda vez que este método for verificar algum campo ou atributo de uma classe; Como este método irá verificar um valor, ele sempre terá um retorno como String, int, float, etc. Mas não terá nenhum argumento.

O encapsulamento é importante porque separa a maneira como um objeto se comporta da maneira como ele é implementado; A definição de como implementar os conhecimentos ou ações de uma classe, sem informar como isto é feito.

Exemplo Prático: Login e Senha de Usuários Prática Modelando o Projeto

Herança é um mecanismo que permite que características comuns a diversas classes sejam agrupadas em uma classe base, ou superclasse. A partir de uma classe base, outras classes podem ser especificadas. Cada classe derivada ou subclasse apresenta as características (estrutura e métodos) da classe base e acrescenta a elas o que for definido de particularidade para ela.

Quando usamos Herança? Exemplo: Atributos comuns entre um Carro, Bicicleta, Avião...

public class Veiculo { String modelo; int ano; int quantpneus; int quantpessoasandam; String cor; }

Mas, como Herdamos? public class Carro extends Veiculo{ } Agora, um Carro é um Veículo!

Então podemos ter a seguinte instância de carro: Veiculo c1 = new Carro(); c1.setano(2010);

SubClasse: uma classe que é um subtipo de uma ou mais classes. Como tal, ela herda todas as características de suas superclasses. SuperClasse: classe a partir da qual todas as suas características são herdadas por suas subclasses.

Exemplo Prático: Pessoa > Usuário Pessoa > Funcionário

É muito importante saber usar Herança para beneficiar, pois se mal projetado um projeto pode ficar comprometido pelo uso indevido desse conceito; Podemos introduzir o conceito de Polimorfismo através de Herança, vamos entender mais na frente como.

Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse.

Quando usamos o Polimorfismo? Exemplo: Atributos comuns, porém serviços (formas de fazer uma ação) diferentes. Acelerar um Veículo. X X

Podemos usar Polimorfismo de três maneiras diferentes: Inclusão (Interfaces) Paramétrico (Generics) Ad-Hoc (Override)

Todo veículo acelera, porém de formas diferentes. public class Veiculo { public void acelerar(){}; }

Então teríamos Polimorfismo Ad-Hoc. public class Bicicleta extends Veiculo{ @Override public void acelerar(){ System.out.println( Pedalar ); System.out.println( Acelerando... ); }; }

Podemos usar Polimorfismo com Interfaces. public interface ServCarros{ public void acelerar(); public void freiar(); } public class Carro implements ServCarros{ //Classe Carro é Obrigada a escrever a implementação //dos métodos }

Polimorfismo é muito utilizado, sua utilização vai de Sistemas básicos até a construção de Padrões de Projeto onde o seu uso é feito constantemente. Composite, Observer, Strategy, Template Method