Your SlideShare is downloading. ×
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Poo slides01
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Poo slides01

1,071

Published on

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,071
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
41
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Programação Orientada a Objetos Prof. Julio Tofoli 2008
  • 2. Orientação a Objeto X Java
    • OO não se restringe a java.
    • OO é maior que java!
      • Smaltalk
      • C, C++, C#, Cisso, Caquilo…
      • Análise OO.
    • Java é uma ferramenta que implementa muito bem o conceito de orientação a objetos.
  • 3. Java é uma linguagem fácil de aprender. Nenhuma linguagem poderosa como o Java é fácil de aprender. É sempre fácil escrever programas do tipo “Alo Mundo”. A parte complexa vem da orientação a objetos e das classes presentes na linguagem. Temos mais de 1.500 classes e interfaces diferentes. Como você imagina o futuro do desenvolvimento de sistemas?? Baseado em eventos(Delphi, VB, FoxPro) ou Orientado a Objetos?? Dedicação! Erros Comuns Sobre Java
  • 4. O ambiente Java facilita a programação. Não é o melhor ambiente do mundo, especialmente se comparado às linguagens visuais que temos hoje, como o Visual Basic e Delphi, etc... Em um ambiente de alta produtividade, o uso do Java deve ser muito racional, levando em conta as dificuldades da codificação. Tem melhorado muito... Netbeans, Eclipse. Erros Comuns Sobre Java
  • 5. Java será a linguagem universal no futuro. É possível, em teoria. Java não é recomendado para solucionar todos os problemas. Java é apenas mais uma linguagem como qualquer outra. A linguagem Java, apenas pelo fato de permitir que um programa seja executado em qualquer plataforma, já realizou revolução suficiente. Além disso, a linguagem foi desenhada para se utilizar da internet, e os conceitos de ambiente multitarefa auxiliam o produto a ter poucas comparações no mercado hoje. Erros Comuns Sobre Java
  • 6. Todos os programas Java tem que ser executados dentro de um navegador. Um dos usos do Java é a confecção de applets. Java também serve para programar aplicativos, servlets, JavaBeans, componentes e uma grande gama de produtos. Javascript é uma versão simplificada do Java. (meu Deus!!)‏ Javascript é uma linguagem utilizada em navegadores. Ela foi inventada pela Netscape, e sua sintaxe é semelhante à da linguagem Java. Com exceção do nome, as semelhanças terminam ai. Erros Comuns Sobre Java
  • 7. Pilares da Orientação a Objeto Encapsulamento: Consiste em ou restringir o acesso do usuario a detalhes de implementação que são inerrentes somente a um objeto. Herança: Mecanismo que permite criar uma nova classe baseada em uma ja existente, herdando suas propriedades e comportamentos . Polimorfismo: Muitas formas... Em resumo, permite que um objeto de uma classes especifica possa ter comportamentos distintos em diversas situações.
  • 8. Java Basic's
    • Classes;
    • Objetos;
    • Atributos;
    • Métodos;
    • Tipos Primitivos;
    • Variáveis Instância/Referência;
    • Modificadores de Acesso;
    • Padrões JavaBeans;
    • Exercicios;
  • 9. Classes Em orientação a objetos, dizemos que um (ou mais) objetos pertencem a uma classe quando eles são muito semelhantes, de acordo com certos padrões. Assim, dependendo da situação, alguém pode dizer que sua bicicleta é um veículo, pois ele anda sobre rodas e carrega uma pessoa. Se seguirmos esse padrão, uma motocicleta também é um veículo, assim como um automóvel ou até um avião. Na verdade, quando programamos em linguagens orientadas a objetos, antes de tudo nós construimos as classes - os modelos -, para depois usá-las na criação de objetos daquele tipo. Java Basic's
  • 10. Classes A POO permite programar atraves de uma estratégia que representa de forma mais verdadeira os aspectos reais do problema. Assim, quando se "lê" um programa orientado a objeto, podemos ver não apenas a solução, mas também a descrição do problema em termos do próprio problema. Isso é Abstração!!! Java Basic's
  • 11. Classes: Nada mais são, do que a especificação de algo que um dia poderá vir a ser um objeto . Entendido? Java Basic's
  • 12. Estrutura básica de uma classe java [modificador_da_classe] class <nome_da_classe> [extends] <nome_da_super_classe> [implements <interface_1>... ] { // Método [modificadores] <tipoDeRetorno> <nome_do_método> ([parametros])‏ { Variáveis internas ao método. Corpo do Método } //Atributos ou variaveis [modificador] <tipo_da_Variavel> <nome_da_variavel> }
  • 13. Java Basic's
    • Convenções JavaBeans:
      • Identificadores devem começar com uma letra, um cifrão($), um underscore(_), e NÃO podem começar com um numero;
      • Depois do primeiro caracter, podem conter qualquer combinação de letras, numeros, etc;
      • Não há limite para numero de caracteres de um identificador;
      • Não se pode usar uma palavra chave como identificador;
      • Identificadores em java são case sensitive e devem seguir o modelo camelCase .
  • 14. Java Basic's Palavras reservadas:
  • 15. Java Basic's
    • Convenções JavaBeans:
        • Identificadores válidos:
          • int _a;
          • int $b;
          • int ________c_2;
          • int _$;
          • int pode_ter_nome_detalhado_sim;
          • boolean isValido;
        • Indentificadores inválidos:
          • int :b;
          • int -f;
          • int e#;
          • int .f;
          • String 7g;
  • 16. Java Basic's
    • Convenções de Declarações JavaBeans:
        • Classes e Interfaces : Primeira letra Maiuscula:
          • class Dog;
          • class Conta;
          • interface Calculadora;
        • Métodos : Primeira letra minuscula:
          • public double getSalario();
          • void setNome(String nomeDoInfeliz);
        • Variáveis : Primeira letra minuscula:
          • int valorDaCompra;
          • String nomeDoInfame;
        • Constantes : Toda MAIUSCULA;
          • public s tatic final VALOR_DO_PI = 3.1416;
  • 17. Objeto: Trata-se da instância de uma classe. Java Basic's
  • 18. Objetos: I magine um molde de carros em miniatura. Pois bem, essa é nossa classe, ou seja, algo que define o formato, tamanho e diversos outros aspectos dos objetos fabricados, no caso, os modelos em escala dos veiculos. Percebeu a diferença? A classe é um molde para os objetos. Quando se diz: “Instância de uma classe ou tipo”, nada mais é do que o objeto dessa classe ou tipo. Java Basic's Mustang1 Mustang2 Mustang3
  • 19. Atributos: Atributos definem o estado do objeto em um determinado instante, por exemplo: Imagine um objeto do tipo Carro (é a classe), com os seguintes atributos: corPintura, corInterior, motorizacao e combustivel. Então assuma também que os valores para esses atributos são respectivamente: preto, cinza, v8 e nitrometano. Java Basic's
  • 20. Métodos: Métodos definem o comportamento do objeto em um determinado instante, por exemplo: Seguindo o exemplo anterior, todos os Carros: aceleram, abastecem, daoPartida, desligam, etc... Esses comportamentos são seus métodos. Java Basic's
  • 21. Métodos: Métodos definem o comportamento do objeto em um determinado instante, por exemplo: Seguindo o exemplo anterior, todos os Carros: aceleram, abastecem, daoPartida, desligam, etc... Esses comportamentos são seus métodos. Java Basic's
  • 22. Atributos e Métodos: Resumindo: Os atributos de instância (ou de objeto) definem o estado desse objeto. Os métodos de instância (ou de objeto) definem os comportamentos desse objeto. Java Basic's
  • 23. Java Basic's
  • 24. Tipos Primitivos: Os tipos primitivos (não são classes) correspondem a dados mais simples (não são objetos) e independem da plataforma a qual o sistema “rodará”. São eles: Java Basic's
  • 25. Tipos Primitivos: Java Basic's
  • 26. Tipos Primitivos: Java Basic's
  • 27.
    • Variáveis:
    • Relembre o conceito de objetos. Agregue a esse conceito, o fato de que todo objeto criado ficará armazenado em memória principal, ou seja, a sua memória RAM.
    • Como acessar esses objetos?
    • Como alterar suas propriedades (atributos)?
    • Como alterar seus comportamentos (métodos)?
    Java Basic's
  • 28. Variáveis: Sim, elas... as variaveis!!! De Referência : São uma espécie de link (ponteiro) para o objeto na memória. Mustang mustang1 = new Mustang(); De Instância : São variaveis definidas dentro da classe, fora de qualquer método, e são inicializadas no momento em que a classe é instânciada. class Mustang(){ String corPintura; int capacidadeTanque; } Java Basic's
  • 29. Java Basic's
    • Construtores:
        • O construtor é um tipo método especial que esta presente em todas as classes java.
        • Pode ser usado para inicializar os atributos de um objeto;
        • Construtores não possuem valores de retorno.
        • public class Automovel extends Veiculo {
        • /** Creates a new instance of Automovel */
        • public Automovel(String mar, String mod, String c, byte r, byte p, short t) {
        • super(mar, mod, c, r);
        • this.nroPortas = p;
        • this.trocasOleo = 0;
        • }
        • }
  • 30. Java Basic's Modificadores de Acesso: Modificadores de acesso controlam como as classes e seus membros são visíveis por outras classes e instâncias de outras classes.
  • 31. Java Basic's
    • Modificadores de Acesso:
    • Java possui 4 níveis de controle de acesso que são aplicados a classes, atributos e métodos.
        • private;
        • default (friendly, amigavel ou package);
        • protected;
        • public
  • 32. Java Basic's Modificadores de Acesso: private: O modificador de acesso private e o mais restritivo de todos, variáveis, métodos e construtores com esse modificador são visíveis somente dentro da definição da própria classe , acessando-o diretamente ou através de uma instância da mesma classe. O modificador private pode ser usado em variáveis, métodos e construtores. Em classes, seu uso é restrito a classes internas, ou seja, classes declaradas dentro de outras classes
  • 33. Java Basic's Modificadores de Acesso: default: O acesso default em Java decorre da não especificação de nenhum dos três modificadores de acesso (private, protected, public) ‏ O acesso default pode ser aplicado a classes, métodos, variáveis e construtores. Outros nomes também usados para designar esse tipo de acesso são: &quot;package&quot; e “amigavel&quot;. O efeito de aplicarmos o acesso default a um elemento (ou seja, não aplicar nenhum dos três modificadores) é que elementos com esse tipo de acesso podem somente ser acessados por classes do mesmo pacote .
  • 34. Java Basic's Modificadores de Acesso: protected: O modificador de acesso protected define que variáveis, métodos e construtores com esse modificador podem somente ser acessados por classes no mesmo pacote ou subclasses da classe onde o elemento foi definido , é importante notar que para os elementos serem acessados na subclasse não é preciso estar no mesmo pacote da classe pai. O modificador protected pode ser aplicado somente em variáveis, métodos e construtores, o seu uso em classes não é permitido.
  • 35. Java Basic's Modificadores de Acesso: public: O mais abrangente de todos os tipos de acesso, o modificador public declara que elementos com esse modificador são acessíveis de qualquer classe Java . Este modificador é aplicável a variáveis, métodos, construtores e classes.
  • 36. Java Basic's Modificadores: final: O modificador final pode ser aplicado a variáveis, métodos e classes. O comportamento descrito pelo operador final varia de elemento para elemento, mas tem um conceito em comum, o conceito de imutabilidade , isto é, elementos final não podem ser mudados. public final class Imutavel {} public class Impossivel extends Imutavel {} //erro de compilacao
  • 37. Java Basic's Modificadores: final: public class Transacao { public final boolean verificarSenha() { ... } } public class TransacaoPublica extends Transacao { public final boolean verificarSenha() { //erro de compilacao ... } }
  • 38. Java Basic's Modificadores: public class Carro { public final int numeroDeRodas = 4; public int numeroDePortas = 4; public static void main(String args[]) { Carro c1, c2; final Carro c3; c1 = new Carro(); c1.numeroDeRodas = 5; //erro de compilacao c2 = c3 = c1; c2.numeroDePortas = 2; c3.numeroDePortas = 2; c3 = c2; //erro de compilacao } }
  • 39. Java Basic's Modificadores: static: Este modificador pode ser aplicado a variáveis, métodos e a uma porção de código que não está dentro de nenhum método, geralmente referenciado como bloco estático. A idéia geral sobre o modificador static é que elementos com esse modificador estão associados com a classe e não com instâncias dessa classe.
  • 40. Java Basic's Modificadores: static: Uma variável estática é compartilhada por todas as instâncias de uma classe, ou seja, ao invés de cada instância da classe ter uma cópia dessa variável ela é uma única variável compartilhada por todos as instâncias. Para a existência de uma variável estática não é preciso nem mesmo a criação de uma instância da classe que contenha a variável, é necessário somente que a classe seja carregada na Máquina Virtual Java, já que está é criada e inicializada no momento de carga da classe. Em relação a métodos as mesmas explicações são verdadeiras, ou seja, métodos podem ser chamados mesmo sem nenhuma instância da classe ter sido construída. Um bom exemplo de métodos estáticos existe em toda aplicação Java, o método main() é invocado sem a existência de nenhuma instância.
  • 41. Java Basic's Modificadores: static: public class BlocoEstatico { static int i = 4; static { System.out.println(&quot;Carregando BlocoEstaticorn valor de i: &quot; + i); } public static void main(String args[]) { System.out.println(&quot;metodo main&quot;); } }
  • 42. Atributos e Métodos Estáticos
    • Métodos estáticos:
      • Não precisam de uma instância para serem acessados.
      • São declarados através do modificador “ static”
        • public static double RetornaDiferença(double v1, double v2)‏
      • Métodos estáticos são utilizados quando o comportamento do método não depende do estado de um objeto.
      • Métodos que só necessitem dos dados passados como argumentos (parâmetros) para efetuar a tarefa requerida.
      • Utilizado para criação de bibliotecas de métodos
      • Classes que contém somente métodos estáticos, agrupados por função.
  • 43. Atributos e Métodos Estáticos
    • Crie uma classe conversor de unidades.
    • Implemente métodos estáticos para conversão das seguintes unidades:
      • KM para Metros;
      • Toneladas para Kilos;
      • Real para Dolar; (envie a cotação como parametro).
    • Crie uma classe para testar os conversores;
  • 44. Atributos e Métodos Estáticos
    • Atributos estáticos:
    • Campos compartilhados por todas as instâncias de uma classe.
    • Somente um valor será armazenado em um campo estático.
    • Caso o valor seja alterado por alguma instância, a alteração irá refletir em todas as outras instâncias da classe.
    • Declarado através do modificador “static”
    • Utilizado normalmente em contadores que exigem uma sequencia unica entre as diversas instâncias da classe.
  • 45. Atributos e Métodos Estáticos
    • Crie uma classe Fornecedor com a seguinte estrutura:
      • Atributos:
        • Codigo;
        • Nome;
        • CNPJ.
      • Métodos:
        • Fornecedor;
        • incrementaCodigo.
        • exibeCodigo.
    • Em seguida crie uma classe para testar sua classe Fornecedor.
  • 46. Atributos e Métodos Estáticos
    • Modifique sua classe Fornecedor para que o a sequencia dos códigos seja única entre todas suas instâncias.
  • 47. Java Basic's Modificadores: abstract: O modificador abstract pode ser aplicado somente a classes e métodos. Classes abstratas provem um modo de adiar a implementação de métodos para subclasses. Uma classe abstrata não pode ser instanciada, ou seja, não podemos chamar seus construtores.
  • 48. Java Basic's Modificadores: abstract: public abstract class Figura { public abstract void desenhar(); public static void main(String args[]) { Figura f; f = new Figura(); //erro de compilacao } }
  • 49. Java Basic's Modificadores: abstract: Classes devem ser declaradas abstratas quando qualquer uma das três afirmativas abaixo forem verdadeiras: a) A classe contêm métodos abstratos; b) A classe herda de classes abstratas e não define todos os seus métodos abstratos; c) A classe implementa uma interface, mas não declara todos os seus métodos.
  • 50. Java Basic's
    • Modificadores:
      • native;
          • Quando desejamos acessar chamadas do Sistema Operacional, interfacear com dispositivos de hardware, reusar código não Java, implementar código onde o tempo é um parâmetro critico, etc.
      • transient;
          • É aplicado somente a variáveis. Quando uma variável é declarada transient ela não é guardada como parte do estado de persistência do objeto.
      • synchronized;
          • Esse modificador é usado para sincronizar o acesso a código em ambientes paralelos.
      • volatile
          • Este modificador indica que variáveis podem ser modificadas assincronamente e o compilador não deve fazer qualquer assunção sobre ela.
  • 51. Java Basic's
    • Modificadores de Acesso - Resumo:
    • Classes só podem usar 2 dos 4 níveis de acesso:
        • default e public;
    • Membros (atributos e metodos) podem ser:
        • private;
        • default;
        • protect;
        • public.
    • A visibilidade das classes gira em torno de se o código pode:
        • Criar um instância de outra classe;
        • Estender (criar subclasses) de outra classe;
        • Acessar métodos e variáveis de outra classe;
  • 52. Sempre mantenha seus dados como private Se seus atributos forem todos public , você estará violando o encapsulamento . Sempre inicialize seus dados. Java não fará a inicialização de variáveis locais para você. Não confie nos valores padrão, sempre prefira fazê-lo você mesmo. Use os Construtores. Não utilize muitos tipos básicos em uma classe. A idéia aqui é substituir os tipos básicos que são relacionados entre si por outras classes. Como exemplo: private String rua; private String cidade; private String estado; private String cep; Dicas para a Construção de Classes
  • 53. Nem todos os atributos necessitam de métodos. Imagine uma classe que represente os empregados da sua empresa. Você provavelmente não necessita ter um método para alterar a data de contratação de uma pessoa, uma vez que o objeto está construído. Então isso pode ser resolvido no construtor, sem a necessidade de um método. Use definições padrão para suas classes. Sempre use um padrão. Isso torna muito mais fácil a manutenção e entendimento de código. Normalmente, o padrão usado em Java (javabeans) é: Constantes Construtores Métodos Métodos Estáticos Instâncias de variáveis Variáveis Estáticas Dicas para a Construção de Classes
  • 54. Prime Sempre pela Alta Coesão e pelo Baixo Acoplamento Acoplamento é quanto um elemento (classe, método, função, módulo, componente) depende e conhece do outro. Elementos muito acoplados geralmente são muito dependentes, mudou um e você com certeza vai ter que mudar o outro. Coesão é o quanto as tarefas que um elemento realiza estão relacionadas com um mesmo conceito. Baixa coesão teria uma classe que, por exemplo, imprime um documento e exibe um formulário para o usuário, neste caso provavelmente você deveria dividir esta classe em mais de uma. Dicas para a Construção de Classes

×