PARADIGMA DE
ORIENTAÇÃO A
OBJETOS
André Victor S. M dos Santos
• CONCEITO GERAL
 Na Programação Orientada a Objetos, a aplicação é vista como
uma rede dinâmica de objetos colaboradores que permite aos
desenvolvedores de software administrar mais facilmente, a
complexidade do domínio do problema, permitindo desenvolver
softwares mais flexíveis, mais fáceis de se manutenir, além de
melhorar as possibilidades de reusabildiade de código;
 Deste modo, utilizando o paradigma Orientado a Objetos,
modelamos e construímos sistemas, baseado nos objetos que
compõem o mesmo.
• IDEIA DA POO
 A POO foi criada para tentar aproximar o mundo real do mundo
virtual: a ideia fundamental é tentar simular o mundo real dentro do
computador. Para isso, nada mais natural do que utilizar Objetos
que recebem mensagens.
 OBJETOS:
 O programador explica como os objetos devem interagir entre si. Os objetos
"conversam" uns com os outros através do envio de mensagens, e o papel principal
do programador é especificar quais serão as mensagens que cada objeto pode
receber, e também qual a ação que aquele objeto deve realizar ao receber
aquela mensagem em específico.
 MENSAGENS:
 é um pequeno texto que os objetos conseguem entender e, por questões
técnicas, não pode conter espaços. Junto com algumas dessas mensagens
ainda é possível passar algumas informações para o objeto (parâmetros),
dessa forma, dois objetos conseguem trocar informações entre si facilmente.
• ENTENDENDO A POO
 Formalmente, para ser considerada uma linguagem OO, essa
precisa implementar quatro conceitos básicos:
 Abstração;
 Classe;
 Encapsulamento;
 Herança e
 Polimorfismo.
• ABSTRAÇÃO:
 Nesse contexto a abstração refere-se à capacidade de modelar o
mundo real, e por outro lado, podemos considerá-la como um
mecanismo pelo qual restringimos o nosso universo de análise e as
variáveis e constantes que compõem esse universo, desprezando os
dados que não nos interessa na análise;
 Quando fechamos os olhos e pensamos em uma mesa; esta mesa
imaginária provavelmente não vai ser igual à uma outra imaginada
por outras pessoas, mas o que importa é que todos as pessoas que
imaginaram uma mesa, colocaram nessa as informações que para
elas são necessárias para a sua função (de ser uma mesa).
• CLASSE:
 Uma classe é uma abstração que define um tipo de objeto e o que
objetos deste determinado tipo tem dentro deles (seus atributos) e
também define que tipo de ações esse tipo de objeto é capaz de
realizar (métodos);
 Uma classe descreve um conjunto de objetos com as mesmas
propriedades, o mesmo comportamento, os mesmos
relacionamentos com outros objetos e a mesma semântica.
• ENCAPSULAMENTO:
 Contribui fundamentalmente para diminuir os malefícios causados
pela interferência externa sobre os dados. Partindo desse princípio,
toda e qualquer transação feita com esses dados só pode ser feita
através de procedimentos colocados "dentro" desse objeto, pelo
envio de mensagens;
 Desta maneira, dizemos que um dado está encapsulado quando
envolvido por código de forma que só é visível na rotina onde foi
criado; o mesmo acontece com uma rotina, que sendo
encapsulada, suas operações internas são invisíveis às outras
rotinas.
• HERANÇA:
 É um mecanismo que, se for bem empregado, permite altos graus
de reutilização de código;
 Do ponto de vista prático, pode ser entendido como sendo um
conjunto de instâncias criadas a partir de um outro conjunto de
instâncias com características semelhantes, e os elementos desse
subconjunto herdam todas as características do conjunto original;
 A ideia é fornecer um mecanismo simples (mas muito poderoso)
para que se defina novas classes a partir de uma já existente.
• POLIMORFISMO:
 É definido como sendo um código que possui "vários
comportamentos" ou que produz "vários comportamentos";
 Em outras palavras, é um código que pode ser aplicado à várias
classes de objetos.
 De maneira prática isto quer dizer que a operação em questão
mantém seu comportamento transparente para quaisquer tipos de
argumentos; isto é, a mesma mensagem é enviada a objetos de
classes distintas e eles poderão reagir de maneiras diferentes
PERSISTÊNCIA DE
DADOS VIA JDBC
• PERSISTÊNCIA DE DADOS
 A função de um sistema de gerenciamento de banco de dados
é permitir o acesso e a atualização simultâneos de bancos de
dados persistentes. A fim de garantir a persistência dos dados a
longo prazo, os sistemas de gerenciamento de banco de dados
utilizam várias estratégias de recuperação em caso de falhas na
transação, no sistema ou no meio
• JAVA DATABASE CONNECTIVITY
 A Java Database Connectivity (JDBC) é uma tecnologia que
oferece uma API baseada em Java para acesso a bases de dados
e outras fontes de dados relacionais. Usando esta API, um
programa pode consultar e modificar dados numa base de dados,
com suporte a transações ACID;
 A API permite ao programador controlar vários aspectos da
interação com a base de dados local, incluindo a gestão de
transações no âmbito de transações distribuídas através da
interface XA (begin, prepare, commit, abort).
• A CONEXÃO EM JAVA
 Para evitar que cada banco tenha a sua própria API e conjunto de
classes e métodos, temos um único conjunto de interfaces muito bem
definidas que devem ser implementadas. Esse conjunto de interfaces
fica dentro do pacote java.sql e nos referiremos a ela como JDBC;
 Entre as diversas interfaces deste pacote, existe a interface Connection
que define métodos para executar uma query, comitar transação e
fechar a conexão, entre outros;
 Caso queiramos trabalhar com o MySQL, precisamos de classes
concretas que implementem essas interfaces do pacote java.sql.
 CLASSES CONCRETAS:
 Esse conjunto de classes concretas é quem fará a ponte entre o código cliente que
usa a API JDBC e o banco de dados. São essas classes que sabem se comunicar
através do protocolo proprietário do banco de dados. Esse conjunto de classes
recebe o nome de driver;
 Para abrir uma conexão com um banco de dados, precisamos utilizar sempre um
driver. A classe DriverManager é a responsável por se comunicar com todos os
drivers que você deixou disponível. Para isso, invocamos o método estático
getConnection com uma String que indica a qual banco desejamos nos conectar.

Paradigma de orientação a objetos -

  • 1.
  • 2.
    • CONCEITO GERAL Na Programação Orientada a Objetos, a aplicação é vista como uma rede dinâmica de objetos colaboradores que permite aos desenvolvedores de software administrar mais facilmente, a complexidade do domínio do problema, permitindo desenvolver softwares mais flexíveis, mais fáceis de se manutenir, além de melhorar as possibilidades de reusabildiade de código;  Deste modo, utilizando o paradigma Orientado a Objetos, modelamos e construímos sistemas, baseado nos objetos que compõem o mesmo.
  • 3.
    • IDEIA DAPOO  A POO foi criada para tentar aproximar o mundo real do mundo virtual: a ideia fundamental é tentar simular o mundo real dentro do computador. Para isso, nada mais natural do que utilizar Objetos que recebem mensagens.
  • 4.
     OBJETOS:  Oprogramador explica como os objetos devem interagir entre si. Os objetos "conversam" uns com os outros através do envio de mensagens, e o papel principal do programador é especificar quais serão as mensagens que cada objeto pode receber, e também qual a ação que aquele objeto deve realizar ao receber aquela mensagem em específico.  MENSAGENS:  é um pequeno texto que os objetos conseguem entender e, por questões técnicas, não pode conter espaços. Junto com algumas dessas mensagens ainda é possível passar algumas informações para o objeto (parâmetros), dessa forma, dois objetos conseguem trocar informações entre si facilmente.
  • 5.
    • ENTENDENDO APOO  Formalmente, para ser considerada uma linguagem OO, essa precisa implementar quatro conceitos básicos:  Abstração;  Classe;  Encapsulamento;  Herança e  Polimorfismo.
  • 6.
    • ABSTRAÇÃO:  Nessecontexto a abstração refere-se à capacidade de modelar o mundo real, e por outro lado, podemos considerá-la como um mecanismo pelo qual restringimos o nosso universo de análise e as variáveis e constantes que compõem esse universo, desprezando os dados que não nos interessa na análise;  Quando fechamos os olhos e pensamos em uma mesa; esta mesa imaginária provavelmente não vai ser igual à uma outra imaginada por outras pessoas, mas o que importa é que todos as pessoas que imaginaram uma mesa, colocaram nessa as informações que para elas são necessárias para a sua função (de ser uma mesa).
  • 7.
    • CLASSE:  Umaclasse é uma abstração que define um tipo de objeto e o que objetos deste determinado tipo tem dentro deles (seus atributos) e também define que tipo de ações esse tipo de objeto é capaz de realizar (métodos);  Uma classe descreve um conjunto de objetos com as mesmas propriedades, o mesmo comportamento, os mesmos relacionamentos com outros objetos e a mesma semântica.
  • 8.
    • ENCAPSULAMENTO:  Contribuifundamentalmente para diminuir os malefícios causados pela interferência externa sobre os dados. Partindo desse princípio, toda e qualquer transação feita com esses dados só pode ser feita através de procedimentos colocados "dentro" desse objeto, pelo envio de mensagens;  Desta maneira, dizemos que um dado está encapsulado quando envolvido por código de forma que só é visível na rotina onde foi criado; o mesmo acontece com uma rotina, que sendo encapsulada, suas operações internas são invisíveis às outras rotinas.
  • 9.
    • HERANÇA:  Éum mecanismo que, se for bem empregado, permite altos graus de reutilização de código;  Do ponto de vista prático, pode ser entendido como sendo um conjunto de instâncias criadas a partir de um outro conjunto de instâncias com características semelhantes, e os elementos desse subconjunto herdam todas as características do conjunto original;  A ideia é fornecer um mecanismo simples (mas muito poderoso) para que se defina novas classes a partir de uma já existente.
  • 10.
    • POLIMORFISMO:  Édefinido como sendo um código que possui "vários comportamentos" ou que produz "vários comportamentos";  Em outras palavras, é um código que pode ser aplicado à várias classes de objetos.  De maneira prática isto quer dizer que a operação em questão mantém seu comportamento transparente para quaisquer tipos de argumentos; isto é, a mesma mensagem é enviada a objetos de classes distintas e eles poderão reagir de maneiras diferentes
  • 11.
  • 12.
    • PERSISTÊNCIA DEDADOS  A função de um sistema de gerenciamento de banco de dados é permitir o acesso e a atualização simultâneos de bancos de dados persistentes. A fim de garantir a persistência dos dados a longo prazo, os sistemas de gerenciamento de banco de dados utilizam várias estratégias de recuperação em caso de falhas na transação, no sistema ou no meio
  • 13.
    • JAVA DATABASECONNECTIVITY  A Java Database Connectivity (JDBC) é uma tecnologia que oferece uma API baseada em Java para acesso a bases de dados e outras fontes de dados relacionais. Usando esta API, um programa pode consultar e modificar dados numa base de dados, com suporte a transações ACID;  A API permite ao programador controlar vários aspectos da interação com a base de dados local, incluindo a gestão de transações no âmbito de transações distribuídas através da interface XA (begin, prepare, commit, abort).
  • 14.
    • A CONEXÃOEM JAVA  Para evitar que cada banco tenha a sua própria API e conjunto de classes e métodos, temos um único conjunto de interfaces muito bem definidas que devem ser implementadas. Esse conjunto de interfaces fica dentro do pacote java.sql e nos referiremos a ela como JDBC;  Entre as diversas interfaces deste pacote, existe a interface Connection que define métodos para executar uma query, comitar transação e fechar a conexão, entre outros;  Caso queiramos trabalhar com o MySQL, precisamos de classes concretas que implementem essas interfaces do pacote java.sql.
  • 15.
     CLASSES CONCRETAS: Esse conjunto de classes concretas é quem fará a ponte entre o código cliente que usa a API JDBC e o banco de dados. São essas classes que sabem se comunicar através do protocolo proprietário do banco de dados. Esse conjunto de classes recebe o nome de driver;  Para abrir uma conexão com um banco de dados, precisamos utilizar sempre um driver. A classe DriverManager é a responsável por se comunicar com todos os drivers que você deixou disponível. Para isso, invocamos o método estático getConnection com uma String que indica a qual banco desejamos nos conectar.