Material de Orientação a Objetos com Java objetivando auxiliar no aprendizado do paradigma e da linguagem Java, preparando o aluno para programar para Google Android
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Orientação a Objetos para Desenvolvedores Android
1. ANÁLISE E PROJETO DE
SISTEMAS ORIENTADO A
OBJETOS – PARTE 2
Prof. MSc. Iury Teixeira
Faculdade de Juazeiro do Norte
Especialização em Desenvolvimento de Aplicativos para
Dispositivos Móveis
2. Roteiro
• Conceitos de OO
• Primitivos, Referências
• Classes, atributos e métodos
• Construtores
• Sobrecarga
• Herança e Sobrescrita
(Polimorfismo)
• Leitura de diagramas
• Refactor
• Interfaces
• Coleções (List, Set, Map)
• Exceptions
• Classes Internas e Anônimas
• Apresentação Final de Projeto
Implementado - MVC
5. Por que Orientação a Objetos
Representar conceitos do mundo real em
sistemas computacionais
Permite troca de informações entre objetos
da aplicação através de mensagens
Reuso de Operações de forma coesa
12. Classe
• Uma classe representa um modelo para a construção de
objetos.
• Uma classe é um tipo de dado.
13. Resumindo…
• Objeto: instância de uma classe
• Classe: tipo de dado que representa a estrutura de um
objeto real ou abstrato, através de atributos e
métodos;
• Atributo: propriedades de um objeto;
• Método: Ações de um objeto;
14. Benefícios da O.O.
Promove a reutilização de código.
Flexibilização da aplicação.
Concentrar esforços no ponto do problema.
Aproximação do desenvolvimento com o mundo real.
18. • Referencias vs Dados Primitivos
• Uma referência é diferente de um tipo primitivo pelo fato de não
ser capaz de armazenar o valor real do dado, mas apenas referir-
se ao dado.
• A referência “referencia” a localização de memória onde o dado
encontra-se:
• String linguagem= “Java”;
• String plataforma = “Standard Edition”;
22. Quiz
( ) Um objeto representa a estrutura em memória de um dado.
( ) O método construtot é utilizado para criar um objeto.
( ) A classe define a estrutura de um objeto.
( ) Uma referência possui o objeto criado
( ) uma variável de tipo primitivo armazena o valor real.
( ) X sendo variável inteira, X++ será incrementado + 1 antes de sua
próxima utilização
23. Preparar para Mão no código J
• Calcular área do triângulo
• A sintaxe (em Java) geral para declarar uma classe é:
<modificador> class <NomeDaClasse>{
<Atributos>;
<construtor>;
<métodos>;
}
24. O Que seria atributo e o que seria
método nesse cenário?
Quem é o objeto?
Será preciso criar uma classe?
28. Encapsulamento
Encapsulamento na OO refere-se ao pacote de operações
e atributos o qual represente o estado em um tipo de objeto, de tal forma
que o estado é acessível ou modificável
somente pela interface provida pelo encapsulamento.
(Page-Jones, 2000)
37. Herança
A herança é uma forma de reutilização de software.
Classes podem herdar de classes.
Novas classes são criadas a parti das classes existentes,
absorvendo seus atributos e comportamentos
40. Precisamos saber que…
• Com a herança, os membros private de uma
superclasse não são diretamente acessíveis em
uma subclasse.
• Os membros public da superclasse tornam-se
membros da subclasse, utilizando o seu
acesso original de membro.
41. Precisamos saber que…
• Os membros protected da superclasse podem
ser acessados por subclasses, mas são privados
para qualquer classe fora da hierarquia*.
• Os construtores não são herdados.
44. Poderiamos criar uma instância de FormaGeometrica?
FormaGeometrica fg = new FormaGeometrica( );
Como impedir que isso
aconteça?
E o corpo do método calcular,
ficar vazio, está correto?
abstract
#refactor
45. Mais código J
Colaborador Horista:
- salario * quantHoras
ColaboradorSalario:
- 3 anos: 4 %
- 5 anos: 5%
- 10 anos: 7%
Fornecer também construtor
para criar o objeto sobrecarregando-os
46. Quiz
( ) A henraça mantém um relacionamento TEM UM
( ) Encapsulamento define esconder a lógica ou processo que será
executado
( ) Membros privados não herdados
( ) Membros estáticos sempre serão herdados a nível de pacote
( ) Quando utilizamos abstract em uma classe, a mesma não pode
ser instanciada
( ) Para acessar um membro da super classe, basta apenas utilizar o
identificador super.
58. Ambas possuem um comportamento em comum:
calcularPagamento
Interface
59.
60.
61. Importante sobre Interfaces
• Quando uma classe concreta implementa uma
interface, a classe torna-se obrigada a fornecer uma
implementação para o método da interface
• Agora, uma Venda “é um” Pagavel
63. Importante…
Uma classe abstrata ou não, implementa uma interface
Uma classe abstrata não é obrigada a fornecer uma implementação para
o(s) método(s) de uma interface.
Interfaces podem estender de várias interfaces
Classes implementam interfaces e não as estendem
Classes implementam interfaces e não as estendem
Uma classe podem implementar várias interfaces.
Além de métodos, interfaces podem conter constantes
70. Collection
É a interface raiz da hierarquia.
Representa um grupo de objetos. Alguns tipos de
collection’s permitem objetos duplicados, outros não.
Alguns tipos de collection’s são ordenados outros não.
71. É uma Collection ordenada e
p e r m i t e e l e m e n t o s
duplicados. Os elementos de
u m a l i s t a p o d e m s e r
acessados via índices.
List
Set É uma collection que não
permite elementos
duplicados
Map
É um objeto que mapeia
chaves para valores. Não
é permitido chaves
duplicadas.
80. Wrappers
• Maneira de empacotar primitivos em objeto
Tipo primitivos Classe equivalente
byte Byte
short Short
char Character
int Integer
long Long
float Float
doube Double
81. Qdizer que é preciso fazer casting toda
vez com um elemento dentro do ArrayList ?
86. E as outras List
• LinkedList
• Representa uma lista onde os elementos são duplamente
encadeados.
• Vector
• Representa uma lista segura contra threads (thread-safe).
88. Map
• Map Não é uma collection. Representa uma estrutura de
dados, onde se tem uma chave(identificador) mapeada para
um valor.
Equals e hasCode são importantes para as chaves
90. Há a interface Collection e a classe Collections.
Essa ultima, fornece métodos dentre outras
coisas, para buscar e classificar uma collection.
Pouco mais…..
91. Mão no código J
• Uma classe que pergunte a secretária o nome do aluno e as duas
notas de um aluno.
• Devem ser criados 3 alunos;
• armazenar os dados digitados em uma List (banco de dados virtual)
92. Quiz
( ) o ArrayList é um conjuto que acessa objetos através de índices.
( ) o Set é utilizado quando se deseja manter objetos repitidos.
( ) A classe Collection possui métodos que auxiliam trabalhar com
objetos em conjutos.
( ) O Generics possibilita força o tipo de objeto no conjuto.
( ) o Generics sempre são executados em tempo de execução
94. • Tratar à exceção, significa desenvolver um software
tolerante aquela exceção. Em outras palavras, caso
aquela exceção ocorra, o software ainda sim continuará
em funcionamento.
95. Aqui, fica o código que PODE disparar uma
exceção.
Aqui, fica o código que será executado
caso à exceção ocorra.
96. O tipo da exceção que o código
dentro do bloco try pode disparar.
101. Entendendo o erro
Onde à exceção começou.
Onde à exceção terminou.
Quais métodos, em quais classes foram
chamados, entre o começo da exceção
e termino da mesma.
102. Teste você agora J
• Uma divisão de um inteiro por zero causa uma
ArithmeticException. Implemente um tratamento para
essa exceção, e caso a mesma ocorra, informe ao
usuário que ele não pode dividir um inteiro por zero.
104. A classe ContaCorrente, executando a operação de debitar
Caso o método debitar falhe o que acontece?
105. Uma possibilidade é, alterar o método debitar() para retornar um boolean
indicando se a operação foi executada:
Agora sim, né ?
106. Exceções – Disparando Exceções.
• Podemos criar uma exceção e dispará-la.
• O primeiro passo é definir uma classe que
represente a exceção.
• Essa classe deverá herdar da classe
RuntimeException.
107. Agora, qual método pode disparar essa exceção ?
throws – Diz que um método pode lançar uma exceção
117. • A exceção pode disponibilizar informações sobre o erro.
• Por exemplo, a SaldoInsuficienteException poderia
informar qual o valor do saldo atual da conta.
• Para fazer isso, defina um construtor na classe
Exception com os devidos parâmetros
122. Classes Internas
• Declarada dentro de outra classe;
• Possue um relacionamento especial com sua externa;
• Acessando membros privados..
• Pode ter todos os membros que um classe normal tem;
• Não pode ter membros estáticos
127. Internas de Métodos
• São apenas acessíveis no método – esse é seu escopo.
• Apenas final e abstract;
• Apenas acessa variáveis local FINAL;
• Acessando também membros privados da externa;
137. Agora é de verdade!
• Implementar seguindo o padrão MVC, o modelo de seu
projeto, utilizando os recursos da OO.
• Três casos de uso devem ser codificados;
• Tratar possíveis falhas do sistema;
• Seguir boas práticas discutidas (ex: orientado a interfaces) e
padrões;
• 15 min de apresentação para cada fábrica (após o intervalo).
138. Lembrar da bricadeira da bola
No domingo:
apresentar no inicio;
a galera corrigir falhas nos diagramas e documentos e apresentar novamente
e código com regra de negocio e validação de falhas;