Features Title Here. Consectetur adipisicing

Features Content Here. Sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

segunda-feira, 31 de janeiro de 2011

¢Como já falamos anteriormente os três principais pilares da programação por objectos são:
Herança
Polimorfismo
Encapsulação
¢Criar uma classe:
Da maneira como existem formas de definir uma variável também existem formas de definir classes.
Usando a palavra Class seguida do nome que a identificará:
Class cliente
   aqui colocaremos os elementos da classe.
End Class
¢Um exemplo de como usar a herança em VB.net
Class Cliente
        Public nome As String
        Sub Mostrar()
            Console.WriteLine("O nome do Cliente: {0}", nome)
        End Sub
    End Class
    Class ClienteMor
        Inherits Cliente
        Public idade As Decimal
    End Class
Podemos observar que a subclasse clientemor herda todas as propriedades  e métodos da classe cliente.

excepções

Tenha cuidado, porém, as excepções são gerados por código orientado a objeto só. Por exemplo, este código não dispara uma exceção:
<?php     $number = $number / 0; ?>
Seu exemplo seria assim:
<?php     class Sample {           function createNewRecord ($title) {        if (!$title) throw new Exception('Title required');       }     }     ...     try {       $mysample->createNewRecord($title);     } catch ($ex) {       echo "Could not create record.
Please try again. (Reason: $ex)";     }     ... ?>

terça-feira, 25 de janeiro de 2011

¢Agora vamos ver como poderemos usar o polimorfismo.
Sub Main()
Dim cli  As Cliente
Dim cliM  As New ClienteMor ()
cliM.Nome = "Pepe"
cliM.idade= 30
cli = cliM
Console.WriteLine("Usando Mostrar da classe Cliente")
cli.Mostrar()
Console.WriteLine("Usando Mostrar da classe ClienteMor")
cliM.Mostrar()
Console.WriteLine(“A idade do Cliente mor é : {0}", cliM.idade)
Console.ReadLine()
End Sub
¢Um exemplo de como usar a herança em VB.net
Class Cliente
        Public nome As String
        Sub Mostrar()
            Console.WriteLine("O nome do Cliente: {0}", nome)
        End Sub
    End Class
    Class ClienteMor
        Inherits Cliente
        Public idade As Decimal
    End Class
Podemos observar que a subclasse clientemor herda todas as propriedades  e métodos da classe cliente.

Para aceder ao elementos de uma classe:

cli.Nome = “Travassos”
Desta forma colocamos um valor no elemento nome do objecto cli que pertence à classe cliente.
¢Para acedermos ao método da classe faríamos da seguinte forma:
¢
Cli.mostrar()

Criar Objectos a partir de classes:

Para  a criação de objectos de classes usamos a palavra reservada new()
Dim cli As New Cliente()
Desta forma é criado em memória um objecto do tipo cliente.
¢O método Mostrar() é outro elemento da classe que permite visualizar o conteúdo da propriedade nome.
¢Esta é a forma mais simples de definir uma classe e é assim que sempre iremos fazer.

Definir os membros de uma classe

Class Cliente
Public Nome As String
Sub Mostrar()
Console.WriteLine(“O nome do Cliente: {0}", Nome)
End Sub
End Class
Neste caso a linha Public Nome As String  ficaria definido como uma propriedade da classe com acesso público, ou seja pode ser acedida através de outras classes.
¢Como já falamos anteriormente os três principais pilares da programação por objectos são:
Herança
Polimorfismo
Encapsulação
¢Criar uma classe:
Da maneira como existem formas de definir uma variável também existem formas de definir classes.
Usando a palavra Class seguida do nome que a identificará:
Class cliente
   aqui colocaremos os elementos da classe.
End Class
¢Apesar da linguagem ser parecida com o antigo Visual Basic 6.0 a migração destes programadores para a nova plataforma e utilização do Visual Basic.NET é mais fácil para programadores que utilizam linguagens orientada a objecto por causa da grande diferença.
¢Os programadores do antigo Visual Basic 6.0 acostumados com a orientação a eventos encontram algumas dificuldades para utilizar o Visual Basic.NET.
¢Mas que vamos conseguir superar J !
¢A Microsoft simplesmente descontinuou o antigo Visual Basic 6.0 tornando o produto parecido com as demais linguagens do Visual Studio, parecido em questões de recursos e portabilidade pois o Visual Basic.NET ainda é muito diferentes de linguagens como o Visual C++, C#, etc.
¢Porém esta nova versão aproximou o Visual Basic.NET das grandes linguagens de programação, aumentando a aceitação dos programadores Java e até mesmo C++, embora programadores Java caso tenham que migrar para plataforma Microsoft preferem o C#.
¢
¢A Microsoft simplesmente descontinuou o antigo Visual Basic 6.0 tornando o produto parecido com as demais linguagens do Visual Studio, parecido em questões de recursos e portabilidade pois o Visual Basic.NET ainda é muito diferentes de linguagens como o Visual C++, C#, etc.
¢Porém esta nova versão aproximou o Visual Basic.NET das grandes linguagens de programação, aumentando a aceitação dos programadores Java e até mesmo C++, embora programadores Java caso tenham que migrar para plataforma Microsoft preferem o C#.
¢
¢Objectos em Visual Basic .Net
Visual Basic.NET é uma linguagem de programação totalmente orientada a objectos e com suporte total a UML, criada pela Microsoft e distribuída com o Visual Studio .NET (Versão seguinte ao Visual Basic 6.0), embora hoje já haja o Visual Basic 2008.
O Visual Basic.NET é um produto extremamente diferente do antigo Visual Basic 6.0, não podendo ser considerada uma versão seguinte.
Não apenas a maneira de programar foi alterada, mas todo conceito de orientação a objectos trouxe poder para a linguagem.
Uma classe abstracta é um conjunto de informações a respeito de uma colecção de outras classes.
Uma classe abstracta sozinha é completamente inútil, já que não podemos instanciar um objecto desta classe, apenas podemos instanciar objectos de classes que estendem a classe abstracta inicial.
Ela serve apenas para simplificar o sistema, juntando num único local diversas características que são comuns a um grupo de classes.
Não esquecer : Nunca poderemos criar um objecto do tipo de uma classe abstracta.
Crie sempre objectos das classes que estendem esta classe abstracta.
¢Podemos olhar para um objecto da classe Cachorro e falar "isto é um animal, pois estende a classe Animal", mas nunca vamos ver um objecto que seja apenas da classe Animal, pois isso não existe!
¢É como olharmos para uma pessoa e dizer "você é um objecto da classe SerVivo".
 Essa afirmação está correcta, mas na verdade é um objecto da classe SerHumano, que por sua vez herda todas as características da classe SerVivo (que por sua vez é uma classe abstracta, já que não podemos criar algo que seja apenas classificado como "SerVivo
¢Por exemplo, podemos criar uma classe abstracta chamada Animal.
¢Um Animal tem diversas características (atributos) e podem realizar diversas acções (métodos) mas não existe a possibilidade de criarmos objectos do tipo Animal.
¢O que existem são objectos das classes Cachorro, Gato, Papagaio, etc. Essas classes, estendem a classe Animal herdando todas as suas características, e adicionando algumas coisas a mais. "Animal" é só uma entidade abstracta, apenas um conjunto de características em comum, nada mais.
¢Desta forma, a mensagem "fale" enviada a um objecto da classe Animal pode ser interpretada de formas diferentes, dependendo do objecto em questão.
¢Para que isto ocorra, é necessário que duas condições sejam satisfeitas:
1.Exista herança de uma classe abstracta.
2.E o casting.
oHerança já definimos previamente, mas o que é uma classe abstracta? E o que é o casting?
oUma classe abstracta é uma classe que representa uma colecção de características presentes em vários tipos de objectos, mas que não existe e não pode existir isoladamente.

Polimorfismo

Um dos conceitos mais complicados de se entender, e também um dos mais importantes, é o Polimorfismo.
O termo polimorfismo é originário do grego e significa "muitas formas".
Na orientação a objectos, isto significa que um mesmo tipo de objecto, sob certas condições, pode realizar acções diferentes ao receber uma mesma mensagem.
Ou seja, apenas olhando o código fonte não sabemos exactamente qual será a acção tomada pelo sistema, sendo que o próprio sistema é que decide qual o método que será executado, dependendo do contexto durante a execução do programa.
¢Os métodos são análogos:
Poderíamos criar alguns métodos na classe Pessoa e criar mais alguns métodos nas classes PessoaJuridica e PessoaFisica.
No final, todos os objectos teriam os métodos especificados na classe Pessoa, mas só os objectos do tipo PessoaJuridica teriam os métodos especificados dentro da classe PessoaJuridica, e objectos do tipo PessoaFisica teriam os métodos especificados na classe PessoaFisica.
A classe PessoaFisica pode ter por exemplo o atributo RG enquanto a classe PessoaJuridica poderia ter o atributo CNPJ.
¢Dessa forma, todos os objecto da classe PessoaFisica terá como atributos:
¢Nome
¢Idade
¢RG
¢E todos os objectos da classe PessoaJuridica terão os seguintes atributos:
¢Nome
¢Idade
CNPJ
¢Um exemplo um pouco mais próximo da nossa realidade:
¢Vamos supor que estamos a desenvolver um sistema para um banco.
¢O Nosso banco possui clientes que são pessoas físicas e pessoas jurídicas.
Poderiamos criar uma classe chamada Pessoa com os seguintes atributos:
¢Nome
¢Idade
Em seguida, criamos 2 classes que são filhas da classe Pessoa, chamadas PessoaFisica e PessoaJuridica. Tanto a classe PessoaFisica como a PessoaJuridica herdariam os atributos da classe Pessoa, mas poderiam ter alguns atributos a mais
¢A classe Animal seria a classe pai da SerHumano, e logicamente, a classe SerHumano seria a classe filha da Animal.
¢Uma classe pode sempre ter vários filhos, mas normalmente as linguagens de programação orientadas a objectos exigem que cada classe filha tenha apenas uma classe pai.
¢A linguagem C++ permite que uma classe herde as características de várias classes (herança múltipla), mas C++ não é um bom exemplo quando se está falando sobre conceitos de POO.

Herança

Voltando à ideia das classes na Biologia: um ser humano é um animal. Ele tem todas as características (atributos) e pode realizar todas as acções (métodos) de um animal.
Mas além disso, ele tem algumas características e acções que só ele pode realizar.
Em momentos como este, é utilizado a herança.
Uma classe pode estender todas as características de outra e adicionar algumas coisas a mais. Desta forma, a classe SerHumano será uma especialização (ou subclasse) da classe Animal

Mensagens em objectos

Uma mensagem num objecto é a acção de efectuar uma chamada a um método.
Por exemplo, quando dizemos ao objecto carro para andar, estamos  a passar-lhe a mensagem "ande".
Para enviar mensagens aos objectos utilizamos o operador ponto, seguido do método que desejamos utilizar.
 ex:
  meuCarro.andar()
Neste exemplo, passamos a mensagem andar(). Deve-se colocar parênteses assim como com qualquer chamada a uma função.

Estados em objectos

Quando temos um objecto as suas propriedades tomam valores. Por exemplo, quando temos um carro a propriedade cor tomará um valor em concreto, como por exemplo, vermelho, cinza. O valor concreto de uma propriedade de um objecto se chama estado.
Para aceder a um estado de um objecto para ver  o seu valor ou mudá-lo utiliza-se o operador ponto.
meuCarro.cor = “vermelho”
O objecto é meuCarro, logo colocamos o operador ponto e por último o nome da propriedade a qual desejamos aceder. Neste exemplo, estamos a alterar o valor do estado da propriedade do objecto para vermelho com uma simples atribuição.

Criação de objectos

Para criar um objecto temos que escrever uma instrução especial que possa ser distinta dependendo da linguagem de programação que se empregue, mas será algo parecido a isto:
meuCarro = new Carro()
¢
Com a palavra new especificamos que queremos criar uma instancia da classe que continua a seguir.
Dentro dos parênteses poderíamos colocar parâmetros com os quais se inicia o objecto da classe carro.

Objectos em POO

Os objectos são exemplares de uma classe qualquer. Quando criamos um exemplar temos que especificar a classe a partir da qual se criará.
Esta acção de criar um objecto a partir de uma classe  chama-se instanciar.
Por exemplo, um objecto da classe fracção é por exemplo, 3/5. O conceito ou definição de fracção seria a classe, mas quando já estivermos a falar duma fracção em concreto, por exemplo 4/7, 8/1000 ou qualquer outra,  chamamos de objecto.

Métodos nas classes

São as funcionalidades associadas aos objectos.
Os métodos são como funções que estão associadas a um certo objecto

Propriedades das classes

As propriedades ou atributos são as características dos objectos.
Quando definimos uma propriedade normalmente especificamos seu nome e seu tipo.
As propriedades são algo semelhantes às variáveis onde armazenamos os dados relacionados com os objectos.