Академический Документы
Профессиональный Документы
Культура Документы
Programao OO X Procedural
A orientao a objeto muda o foco da programao dos algoritmos
para as estruturas de dados:
A organizao lgica dos dados determina a organizao do
software
O processo de design do software se concentra na organizao
dos dados e na definio das operao que a eles so aplicadas
Tipo de dados agora est embutido no conceito de classe
Mais perto da forma como
pensamos no mundo real
Objeto
Um pacote de software que contm uma coleo de procedimentos
e dados relacionados.
Um objeto representa um item, unidade ou entidade (real ou
abstrata) individualmente separvel com um papel bem definido
no domnio do problema.
Um objeto, como um substantivo, pode ser uma pessoa, local ou
objeto basicamente, qualquer conceito que seja aplicvel ao
projeto do sistema.
Classe
Um padro que define os mtodos e caractersticas que sero
includos em um tipo particular de objeto.
Uma classe uma definio geral dos atributos e mtodos de
um conjunto de objetos.
Exemplos: Cliente, Veculo, Conta Corrente, Documento,
Reserva
Cada uma destas classes representa uma srie de caractersticas
comuns:
dados, como placa do veculo
aes, como ligar o veculo
Instncia
Outro nome para um objeto que pertena a uma classe particular.
Quando uma aplicao est executando, objetos so instanciados
de uma classe e tornam-se ento instncias desta classe.
Exemplos
- Ticket No. 00-123961 representa um objeto (instncia) da classe
Reserva.
- Meu Fusquinha representa uma instncia da classe Veculo
Mtodo
Um procedimento/funo dentro de um objeto.
Mtodos so aes que uma classe ou objeto faz e incluem a
lgica da aplicao.
Um mtodo similar a uma funo/procedimento ou subrotina
em termos de programao estruturada.
Exemplos:
- Criar uma nova conta um mtodo da classe Conta
- Registrar para uma Matria um mtodo para a classe
Estudante
Encapsulamento
Uma tcnica nos quais os dados esto encapsulados junto com
seus procedimentos correspondentes
Encapsulamento esconde tanto os mtodos quanto os atributos do
mundo exterior.
Visibilidade: Public, Private, Protected, e Package-level.
Private: Somente membros da classe podem acessar a propriedade/mtodo
Protected: Somente membros da classe e subclasses (classes descendentes)
podem acessar a propriedade/mtodo
Public: Todas as classes podem acessar a propriedade/mtodo
Package Level : Todos as classes do mesmo package conseguem acessar a
propriedade/mtodo
Vamos discutir mais detalhadamente mais frente
Mensagem
Um sinal que um objeto manda para outro que pede que o objeto que
recebe o sinal execute um de seus mtodos.
Como resultado do encapsulamento, mandar mensagens se torna o
mecanismo de comunicao entre objetos que interagem.
Um formato geral de mensagem tem o seguinte formato:
Object.mtodo(parmetros)
Exemplo: invoice.calcularTotal ( )
Sub-Classe
Uma classe que um caso especial de outra classe.
Sub-classe tambm conhecida como classe filha, enquanto que a
super-classe tambm chamada de classe pai ou me.
Sub-classes so especializaes das super-classes e so criadas via
herana
Exemplo:
Um pediata um caso especial de mdico
Um carro um caso especial de veculo.
Herana
Em OO existe um relacionamento Is-a entre classes
Exemplo : aluno-4o.-perodo is-a aluno is-a pessoa
Hierarquia de Classes
Classes podem ser organizadas em hierarquias de forma
que classes mais especficas herdem mtodos de classes
mais abstratas
Diagramas de hierarquia de classes
Classe: Cadeira
subclasses
Cadeira de Escritrio
Cadeira de Balano
Abstrao
o processo de capturar o comportamento essencial e
caractersticas e coloc-las de uma forma conveniente para
organizar a hierarquia de classes.
Exemplo:
Veculo (Sub-classes: Terrestre, Marinho e Areo)
Sobrecarga
Mesmo nome, mas nmero ou tipo de parmetros diferentes.
Para sobrecarregar uma funo, basta declarar os vrios tipos que
ela pode ter.
Exemplo : classe carro, mtodo frear.
Se receber um parmetro, indica a fora que temos que aplicar no pedal.
Se no receber nenhum parmetro, indica que temos que parar o carro.
Exemplo: operador +
Polimorfismo
Esconder procedimentos alternativos por trs de uma interface comum.
Polimorfismo vem do grego e significa muitas formas.
Isto permite que se tenha uma interface comum que esconde detalhes de
implementao
Exemplo : mtodo frear.
Tem uma implementao na classe base (carro).
Tem outra implementao na classe filha (ferrari).
Polimorfismo Sobrecarga
Com polimorfismo, ns decidimos qual dos mtodos ser
usado em tempo de execuo (exemplo claro de binding
dinmico).
Com sobrecarga, podemos decidir qual dos mtodos ser
usado em tempo de compilao, distinguindo pelos
parmetros passados.
O processo de escolha da funo correta pelo compilador chamado
de resoluo de sobrecarga (overload resolution)
Programas Java
Programas Java consistem em classes, que so formadas por
atributos e mtodos que realizam tarefas e retornam informaes
quando apropriado.
Isto , para fazer seus programas Java, voc precisa desenvolver
classes que chamaro outras classes, e assim por diante.
Logo, precisamos aprender como desenvolver nossas prprias classes
em Java para que possamos implementar solues para nossos
problemas.
Programando OO em Java
O ncleo da LP pequeno, mas existem vrias bibliotecas de classes
que fornecem vrias funcionalidades adicionais para a LP.
Em Java usamos uma abordagem de blocos de construo,
reutilizando os softwares j existentes. Isto far com que:
Seus programas tenham melhor desempenho, pois normalmente as classes prprogramadas so mais otimizadas do que o seu cdigo pessoal.
Melhore a portabilidade do seu programa, pois estar usando classes e mtodos
que so includos em praticamente todas as implementaes do Java
Voc economize tempo de programao.
O cdigo Java compilado para um cdigo de nvel mdio (byte code), que
independente de mquina e precisa ento ser interpretedado por um
interpretador Java.
Compilador
Java
Cdigo Fonte
Java
O arquivo fonte
.java deve sempre
ter esta extenso
Executando o
compilador
Arquivo
.class
gerado
Aplicativos Java
Existem dois tipos de programas Java:
Aplicativos :
programas semelhantes a processador de textos, planilhas, etc. que
normalmente so armazenados e executados localmente.
so carregados na memria usando-se o interpretador Java.
Applets :
programas pequenos que normalmente so armazenados em um
computador ao qual o usurio se conecta remotamente via web.
So carregados e executados via appletviewer e precisam ser chamados
atravs de uma pgina html.
Executando o
interpretador
Java
Sada do
programa e
trmino
Importante
O diretrio onde ficam o compilador (javac) e o interpretador (java) Java
deve ser acrescentado ao PATH do DOS
Se formos re-utilizar classes que ns mesmos criamos, devemos colocar
seus diretrios no CLASSPATH do DOS
Vamos voltar a este tema mais adiante neste curso.
Segundo exemplo
//Este o nosso segundo exemplo em Java
import javax.swing.JOptionPane;
public class HelloWorld
{
public static void main (String[] args)
{
JOptionPane.showMessageDialog(null,
"Hello World!");
System.exit(0);
}
}
Biblioteca de classes
Uma biblioteca de classes uma coleo de classes que podemos
usar quando desenvolvemos programas.
Existe uma biblioteca padro de classes Java que parte de
qualquer ambiente de desenvolvimento Java
Estas classes no so parteda linguagem Java per se, mas ns
nos baseamos bastante nelas.
As bibliotecas de classes Java
so equivalente s bibliotecas do C
Biblioteca de classes
Vrias classes que usaremos, como a System e a String so
parte da biblioteca padro de classes Java
Outras bibliotecas de classes podem ser adquiridas com
fabricantes de software ou criadas por voc mesmo.
No seja teimoso!
Desenvolver novamente classes j existentes
simplesmente tolice - causa erros e perda de
performance!
Pacotes
As classes da biblioteca padro Java so organizadas em
pacotes.
Alguns dos pacotes da biblioteca padro so:
Pacote
Propsito
java.lang
java.applet
java.awt
javax.swing
java.net
java.util
Suporte genrico
Criar applets para a web
Interfaces grficas e grficos
Capacidades e componetes grficos adicionais
Comunicao em rede
Utilidades variadas
A declarao import
Quando queremos usar uma classe de um pacote, pode usar seu
nome totalmente qualificado
java.util.Random
A declarao import
Todas as classes do pacote java.lang so automaticamente
importadas em nossos programas
por isto que no precisamos de um import no primeiro
exemplo.
Pergunta razovel
Se eu preciso importar um arquivo para usar a classe
JOptionPane, porque no preciso importar uma
classe para usar a classe System e seu objeto out?
Resposta
A classe System parte do pacote java.lang
Lembre-se que este pacote padro importado
automaticamente em todo programa Java
Terceiro exemplo
import javax.swing.JOptionPane;
public class Soma1 {
public static void main (String[] args)
{
int n1,n2,soma;
String s1,s2;
s1=JOptionPane.showInputDialog(Prim Num. :");
s2=JOptionPane.showInputDialog(Seg. Num. :");
n1=Integer.parseInt(s1);
n2=Integer.parseInt(s2);
soma=n1+n2;
JOptionPane.showMessageDialog(null,A soma +soma);
System.exit(0);
}
}
String s1,s2;
Estamos declarando objetos da classe String.
n1=Integer.parseInt(s1);
Java uma linguagem muito mais rigorosamente tipada do que o C.
No possvel realizar typecasting automtico na maioria dos casos.
Temos que chamar uma funo (no caso um mtodo da classe Integer) para
poder converte a string entrada na instruo anterior em um inteiro para
realizarmos a soma.
Existe o tipo int e a classe Integer, que
denominada uma wrapper class do
tipo. Mais frente veremos isto com
detalhes.
Quarto exemplo
import javax.swing.JOptionPane;
public class Max1 {
public static void main (String[] args)
{
int n1,n2,max;
n1=Integer.parseInt(JOptionPane.showInputDialog(Prim Num. :"));
n2=Integer.parseInt(JOptionPane.showInputDialog(Seg Num. :"));
if (n1>n2) {
max=n1;
} else {
max=n2;
}
JOptionPane.showMessageDialog(null,O mximo +max);
System.exit(0);
}
}
onde:
condio uma expresso booleana (lgica)
statement1 executada se a condio avaliada como verdadeira.
statement2 executada se a condio avaliada como falsa.
Quinto Exemplo
import javax.swing.JOptionPane;
public class Max1 {
public static void main (String[] args)
{
int i,soma;
i=1;
soma=0;
while (i<=10) {
soma+=Integer.parseInt(JOptionPane.showInputDialog(Num :"));
i++;
}
JOptionPane.showMessageDialog(null,A soma +soma);
System.exit(0);
}
}
Compromisso:
Veremos todas
com cuidado
depois!
Onde:
condio uma expresso booleana
a(s) statement(s) sendo repetidas alteram o valor da condio para false em
algum momento
Comportamento do while
Na primeira vez que o loop executado, a condio avaliada. Se
ela for falsa, no se executa as statements dentro do loop nenhuma
vez.
Se for verdadeira, executam-se todas as statements do loop e voltase para o comeo para avaliar a condio novamente.
Este passo repetido at que a condio seja falsa.
Fim da aula