Polimorfirmo – POO

Este é o primeiro artigo sobre Programação Orientada a Objetos, de uma série que pretendo publicar.

Polimorfismo:

Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura), mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse. A decisão sobre qual o método que deve ser selecionado, de acordo com o tipo da classe derivada, é tomada em tempo de execução, através do mecanismo de ligação tardia (Wikipedia).

Para demonstrar os conceitos de polimorfismo e método estático (método que pode ser aplicado à classe e não necessariamente a um objeto), suponhamos as seguintes classes java:

public abstract class Operacao {
public abstract double calcular(int x, int y);
}

A classe Operacao (acima) é uma classe abstrata que representa qualquer operação matemática (soma, subtração, divisão e multiplicação).

Definiremos a seguir as subclasses Soma, Subtracao, Divisao e Multiplicacao que têm  a classe Operacao como “classe pai”.

public class Soma extends Operacao {
    public double calcular(int x, int y){
      double soma = x+y;
      return soma;
    }
}
 
public class Subtracao extends Operacao {
public double calcular(int x, int y){
return x-y;
}
}
 
public class Divisao extends Operacao {
   public double calcular(int x, int y){
     return x/y;
   }
}
 
public class Multiplicacao extends Operacao {
   public double calcular(int x, int y ){
     return x * y;
   }
}

A classe Contas (abaixo) como o método estático (static) mostrarCalculo.

public class Contas {
 
  public static void mostrarCalculo(Operacao operacao, int x, int y){
 
    System.out.println(“O resultado da é:+ operacao.calcular(x, y));
 
  }
 
}

Na classe Executa (abaixo) é demonstrado o uso do polimorfismo e do uso dos métodos estáticos.

public class Executa {
 
// Método principal (executável)
 
   public static void main(String[] args) {
 
// Mostra a soma
 
   Contas.mostrarCalculo(new Soma(), 8, 9); //Imprime o valor: 17.0
 
// Mostra a subtracao
 
   Contas.mostrarCalculo(new Subtracao(), 12, 10); //Imprime o valor: 2.0
 
// Mostra a divisao
 
   Contas.mostrarCalculo(new Divisao(), 12, 2); //Imprime o valor: 6.0
 
// Mostra a multiplicação
 
   Contas.mostrarCalculo(new Multiplicacao(),23,23); //Imprime o valor: 529.0
 
   }
 
}

O método calcular está sendo chamando quatro vezes dentro do método mostrarCalculo, mas o tipo utilizado como parâmetro é diferente ( o objeto operação “assume diferentes formas”, o que equivale ao conceito do Polimorfismo em POO).

O método calcular está sendo chamando quatro vezes dentro do método mostrarCalculo, mas o tipo utilizado como parâmetro é diferente ( o objeto operação “assume diferentes formas”, o que equivale ao conceito do Polimorfismo em POO).

TinyTable JavaScript classificador de tabelas

TinyTable

Este script classificador e atualizador de tabela fácil de usar e cheia de recursos em apenas 2.5KB.
Os novos recursos incluem destaque de coluna, paginação (opcional), suporte para links, e data.
Para implementar é simples:

var sorter = new TINY.table.sorter('sorter');
sorter.head = 'head'; //header class name
sorter.asc = 'asc'; //ascending header class name
sorter.desc = 'desc'; //descending header class name
sorter.even = 'evenrow'; //even row class name
sorter.odd = 'oddrow'; //odd row class name
sorter.evensel = 'evenselected'; //selected column even class
sorter.oddsel = 'oddselected'; //selected column odd class
sorter.paginate = true (false); //toggle for pagination logic
sorter.pagesize = 15 (20); //toggle for pagination logic
sorter.currentid = 'currentpage'; //current page id
sorter.limitid = 'pagelimit'; //page limit id
sorter.init('table',1);

clique para veja um exemplo.

clique para baixar o código TinyTable


Instalando o plugin jqGrid (plugin jQuery)

Olá turma, o Gilson estava (estava pq com este post acho que resolvemos) com o seguinte problema:

Precisa ordenar dados em uma tabela, clicando no título da coluna,  usando somente javascript pois está trabalhando com ASP delegado que não oferece este tipo de recurso.

Nota: atualmente a maioria dos framework, em várias linguagens, oferece tal recurso.

Tah…. Sugiro, como solução o uso de um plugin do JQuery, o jqGrid (na imagem um exemplo dele ‘em ação’).

e neste post vamos aprender como instalar o jqGrid. é bem simples.

Primeiro passo:

Faça o download da última versão do jqGrid (atualmente a última versão estável é jQuery Grid Plugin 3.4.43.5.3).

Assim vc terá a seguinte estrutura de pastas:

  • js (pasta: onde terá todo o código javascript)
  • themes (pasta: onde estão os diferentes temas )
  • jquery.js (arquivo .js: JQuery versão 1.3.x)
  • jquery.jqGrid.js (arquivo .js: Plugin)

Depois de baixar. Descompacte a estrutura acima no seu web server (iis, para ASP; apache, para PHP e etc).

Segundo passo:

Vamos criar nosso exemplo: index.html

< !DOCTYPE html >
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.jqGrid.js"></script>
<script type="text/javascript" src="js/jqModal.js"></script>
<script type="text/javascript" src="js/jqDnR.js"></script>
<script type="text/javascript"></script>
</head>
<body> ...
</body>
</html>

E pronto!  fácimmm fácimm neh?

Bom agora vamos tentar entender o cógido para podermos modificá-lo:

Das linhas 15 a 20 são os ‘links’ dos .js e .css, não vou entrar em detalhes, pois penso que já entendam como funciona, caso tenham alguma dificuldade quanto a isso é só comentar este post que respondo.

Na linha 22 inicia a parte interessante:

jQuery(document).ready( function() { ... }

É sintáxe do jQuery, que significa: ao carregar o documento execute as instruções “<instruções>” .

Na linha abaixo:

jQuery('#list4').jqGrid({ ....

Inicializa o jqGrid, onde “#list4″ é o identificador da tabela:

 

Demais detalhes constam no código.
Na linha 42 é criado um vetor que alimentará nossa tabela.
Observe que o vetor é carregado os ‘name‘s definidos na linha colModel.

O restante está comentado no código.

Aproveitem… e comentem eventuais dúvidas.

Um abraço a todos.!

Plugin JQuery - jqGrig

Atualizado em 21 de setembro de 2010.

JQuery – Framework open-source Javascript

O JQuery é um excelente framework para JavaScript, possui uma API simples e fácil de entender, além de uma extensa biblioteca de plugins.

Segue abaixo uma lista de alguns plugins:

Excelente alternativa para quem quer manipular AJAX com facilidade, tendo vários recursos.Site do JQuery: http://jquery.com/
JQuery Plugins: http://docs.jquery.com/Plugins