segunda-feira, 25 de agosto de 2014

Sobre Python

Sobre Python


    Python é uma linguagem de programação dinâmica extraordinariamente potente que é usada em uma ampla variedade de domínios de aplicação . Python é muitas vezes comparada a Tcl, Perl, Ruby, Scheme ou Java.Algumas das suas características-chave incluem:

  • Muito clara, sintaxe legível

  • Capacidades de introspecção fortes

  • Orientação a objetos intuitiva

  • Expressão natural do código processual

  • Modularidade completa, suportando pacotes hierárquicos

  • Baseada em exceção de manipulação de erros

  • Tipos de dados dinâmicos de nível muito elevado

  • Extensas bibliotecas padrão e módulos de terceiros para praticamente todas as tarefas

  • Extensões e módulos facilmente escritos em C, C + + (ou Java para Jython, ou. línguas NET para IronPython)

  • Embutido dentro de aplicações como uma interface de scripting

    Python combina poder notável com uma sintaxe muito clara. Tem módulos, classes, exceções, muito alto nível tipos de dados dinâmicos e tipagem dinâmica. Existem interfaces para muitas chamadas e bibliotecas do sistema, bem como para vários sistemas de janelas. Novos módulos embutidos são facilmente escritos em C ou C ++ (ou outros idiomas, dependendo da aplicação escolhida). Python é também usado como uma linguagem de extensão para aplicações escritas em outras línguas que precisam de interfaces de script ou de automação de fácil utilização.

domingo, 24 de agosto de 2014

Android – Criando uma ListView

Android – Criando uma ListView

    Muitas pessoas se perdem quando o assunto é criar uma ListView com base nisso estou disponibilizando este tutorial para ensinar de maneira fácil e rápida como criar uma ListView. Vamos lá.
    Primeiro crie um projeto com qualquer nome que quiser depois abra a sua MainActivity.java (sua Activity principal) e ao invés de extender de Activity você vai extender de ListActivity:

public class MainActivity extends ListActivity {…

    Agora crie um variável de instância chamada lista essa lista vai receber um array de Strings cada String dentro deste array sera um item de nossa ListView veja:



1
2
3
4
public class MainActivity extends ListActivity {
private String[] lista = { "Aula 1", "Aula 2", "Aula 3", "Aula 4", "Aula 5",
"Aula 6", "Aula 7","Aula 8", "Aula 9", "Aula 10", "Aula 11",
"Aula 12", "Aula 13", "Aula 14"};
    
Agora delete o método setContentView(R.Layout….) pois esse método define que nossa view será esse dentro dos parênteses e não é isso que queremos, uma vez que você deletou o setContentView() dentro do método onCreate() chame o método setListAdapter() esse método vai prover um cursor para ListView veja abaixo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
public class Principal extends ListActivity {
    private String[] lista = { "Aula 1", "Aula 2", "Aula 3", 
    "Aula 4", "Aula 5","Aula 6", "Aula 7","Aula 8", "Aula 9", "Aula 10", 
    "Aula 11","Aula 12", "Aula 13", "Aula 14"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, lista));
    }



    Como vimos acima o método setListAdapter recebe por parâmetro um ArrayAdapter anônimo isto é não tivemos que criar um novo objeto ArrayAdapter para usar na nossa lista nós poderíamos é claro mas fica pra próximos tutoriais. Bem voltando esse ArrayAdapter recebe por parâmetro um Context que no nosso caso é a própria classe que extend de ListActivity, e o segundo parâmetro é um resource e nós passamos  layout simple_list_item_1 que é o tipo de layout que nossa ListView usará e o terceiro parâmetro é um array de Objetos que no nosso caso é um array de Strings. Confira no vídeo abaixo como criar a sua ListView e também como efetuar cliques em cada item.


sábado, 23 de agosto de 2014

Java – Persistência de Dados Com Serialização

Java – Persistência de Dados Com Serialização


    Depois de algum tempo sem postar artigos devido a falta de tempo aqui está eu de novo e o artigo de hoje será como guardar seus dados sem a necessidade de criar um banco de dados para isso. Vamos lá.

Com a Interface Serializable você pode guardar o estado do seu objeto ou seja se você criar um determinado objeto e atribuir valores a ele e serializar esse objeto, você terá todos os valores do objeto novamente, por exemplo se você criar um ArrayList e adicionar 10 inteiros a ele e serializa-lo, quando você recupera-lo você terá os 10 inteiros novamente não é demais?

    Para melhor entendimento criarei uma classe chamada Biblioteca uma vez que vamos simular um sistema simples de biblioteca, essa classe terá um ArrayList ao qual serão guardados os nossos livros e também terá o método main, também criarei uma classe chamada Livro essa classe deve implementar Serializable uma vez que para que possamos serializar uma classe ela deve implementar a interface Serializable, você deverá também fazero o seguinte import “import java.io.Serializable;” essa classe terá uma variável de instância chamada de nome a qual guardaremos o nome de cada livro. Abaixo como ficarão nossas classes:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import java.io.Serializable;
public class Livro implements Serializable {
private String nome;
 // no construtor passaremos o nome do livro
public Livro(String nome){
this.nome = nome;
}
 // Aqui podemos recuperar o nome do livro
public String getNome(){
return nome;
}
}
public class Biblioteca {
private static ArrayList<Livro> listLivros = new ArrayList<>();
public static void main(String[] args) {
     }
}

Agora precisamos criar os métodos para serializar e carregar nossos dados armazenados, para isso vamos criar um método na classe Biblioteca chamado serializa() que receberá como parâmetro o nome do arquivo e um ArrayList com os livros, como assim o nome do arquivo? quando você quer serializar um objeto você tem que criar um arquivo cuja extensão você escolhe, eu gosto de criar o arquivo com a extensão .ser (serializavel), enfim pode ser qualquer uma, voltando ao raciocínio depois de criar este arquivo.ser você vai gravar seus dados nele. Vejamos o método serializa():

    


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
// O método serializa recebe dois parametros o primeiro é o nome do arquivo
        //que vamos salvar como se fosse um bloco de notas (obs você pode colocar qualquer extensão
        // no nosso caso a extensão é .ser)
public static void serializa(String arquivo,ArrayList<Livro> livros){
try {
//criamos um objeto FileOutputStream que receberá uma String com o nome do
                //arquivo
FileOutputStream fos = new FileOutputStream(arquivo);
ObjectOutputStream oos = new ObjectOutputStream(fos);
               //pegamos o ObjectOutputStream para escrever com o método writeObject
                // e passamos o nosso ArrayList Como argumento
oos.writeObject(livros);
             // Em seguida fechamos ambos arquivos
fos.close();
oos.close();
            } catch (Exception e) {
          e.printStackTrace();
}
}

   

     Agora que já criamos o método serializa() precisamos de um método que recupere nossos dados para isso criaremos na classe Biblioteca o método load() que receberá como parâmetro o nome do arquivo (no nosso caso arquivo.ser) lembrando que na hora de recuperar nossos dados o nome do arquivo deve ter o mesmo nome e a mesma extensão que você deu ao seu arquivo, veja como ficará nosso método load():


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static ArrayList<Livro> load(String arquivo){
 // crie um ArrayList de Livro para depois retorna-lo
            //com os dados recuperados do seu arquivo
ArrayList<Livro> lista = new ArrayList<>();
try {
 // Crie um objeto do tipo FileInputStream e passe como
                //parametro o nome do arquivo com a mesma extensao
FileInputStream fis = new FileInputStream(arquivo);
 // crie um objeto do tipo ObjectInputStream passando como
                //parametro o FileInputStream que você criou
ObjectInputStream ois = new ObjectInputStream(fis);
 // atribua a sua lista de Livros os dados recuperados
                //apartir do método readObject() do ObjectInputStream
lista = (ArrayList<Livro>) ois.readObject();
   //Feche
fis.close();
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
    //retorne o ArrayList com os dados atualizados
return lista;
}


Agora vamos testar nossa pequena aplicação:



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
public class Biblioteca {
private static ArrayList<Livro> listLivros = new ArrayList<>();
public static void main(String[] args) {
   //Aqui eu crio três livros
Livro lv1 = new Livro("Head First – Java");
Livro lv2 = new Livro("Head First – Python");
Livro lv3 = new Livro("Head First – Mysql");
 // Adiciono os livros na minha listLivros
listLivros.add(lv1);
listLivros.add(lv2);
listLivros.add(lv3);
 //Aqui eu gravo (serializo) meus dados no arquivo livro.ser
serializa("livro.ser", listLivros);
   // Recupero todos o ArrayList e percorro ele com um for
for (Livro livr : load("livro.ser")) {
 //imprimo cada item na tela
System.out.println(livr.getNome());
};
}


Quando você usar o método serializa() o arquivo será criado na pasta do seu projeto.

Termina aqui o nosso artigo sobre Serialização se você gostou comente.



Java - ArrayList


    O ArrayList é uma classe do Java a qual lhe dá a possibilidade de armazenar valores em forma de lista em sua estrutura, esses valores podem ser inteiros, double , char, boolean inclusive referências de Objetos. Alguns métodos muito usados dessa classe são:
  • add(valor a ser adicionado); //adiciona um valor no ArrayList
  • size();  // retorna o tamanho do ArrayList
  • getIndexOf(valor que deseja saber o índice);  // retorna o indice do valor que você quer dentro do ArrayList
  • contains(valor que deseja verificar); // retorna true se o valor que você passou existe dentro do ArrayList
  • remove(valor a ser removido// este método remove o valor  que você passar através do valor ou índice do valor

    Para melhor entendimento vamos ver um exemplo abaixo de como criar um ArrayList do tipo String , ou seja, todos os valores que estiverem nesse ArrayList terão que ser do tipo String. Vejamos abaixo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
public static void main(String[] args) {
   // cria o objeto ArrayList ( é o tipo de dado )
    ArrayList nomes = new ArrayList<>();
    //Aqui adicionamos os valores na lista
    nomes.add("Renan");
    nomes.add("José");
    nomes.add("Maria");
    nomes.add("João");

    //percorro todos os itens da lista com um for
    for (String n : nomes) {

   //pego o indice de e nome de n cada iteracao do for
   System.out.println(nomes.indexOf(n)+"º nome = "+n);

  }
    //com o metodo do Arraylist size pego o tamanho da lista
    System.out.println("A lista tem "+nomes.size()+" itens");

 }


A saída será: 

0º nome = Renan 

1º nome = José 

2º nome = Maria 

3º nome = João 

A lista tem 4 itens


     Como mostrado acima é muito fácil e útil usar o ArrayList, no exemplo eu crie o ArrayList<String> onde o que fica entre os sinais <> é o tipo do valor , depois eu adicionei cada nome (String) em uma posição do ArrayList sabendo que a primeira posição do ArrayList é 0 a segunda 1 e assim sucessivamente.    

 Cada vez que utilizamos o método add() nós adicionamos o valor na seguinte posição vazia do ArrayList, no exemplo acima o primeiro valor foi “Renan” e foi alocado na posição 0 do ArrayList o segundo valor foi “José” que foi alocado na segunda posição do ArrayList e assim a cada vez que chamarmos o método add() será alocado um valor na próxima posição vazia do ArrayList;   E se quiséssemos remover um desses nomes do ArrayList como faríamos? Veja no exemplo abaixo



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public static void main(String[] args) {
   // cria o objeto ArrayList ( é o tipo de dado )
    ArrayList nomes = new ArrayList<>();
    //Aqui adicionamos os valores na lista
    nomes.add("Renan");
    nomes.add("José");
    nomes.add("Maria");
    nomes.add("João");

    //Aqui eu vou remover através do indice
    nomes.remove(3);

    //Aqui eu vou remover através do valor que adicionei anteriormente
    nomes.remove("Maria");

    //percorro todos os itens da lista com um for
    for (String n : nomes) {

   //pego o indice de e nome de n cada iteracao do for
   System.out.println(nomes.indexOf(n)+"º nome = "+n);

  }
    //com o metodo do Arraylist size pego o tamanho da lista
    System.out.println("A lista tem "+nomes.size()+" itens");

 }

A saída será:             

0º nome = Renan 
1º nome = José 
A lista tem 2 itens 

    Observe que eu removi os valores usando o mesmo método pois ele é sobrecarregado ou seja dependendo do argumento que você passar ele vai se comportar de uma maneira diferente sendo que como passei no primeiro caso o índice 3 que era “João” o método procurou dentro do ArrayList o valor que estava naquele índice.

    No segundo caso eu removi os valores usando o próprio valor que eu havia adicionado antes e o método conferiu se no Array existia esse valor e quando verificou que sim ele simplesmente removeu o valor.

Java - While

Java - While




While é um laço de repetição em que um determinado bloco de código será repetido até que uma condição não seja mais satisfeita. Vejamos um exemplo.
Vamos criar uma variável x que será igual a zero , em seguida criaremos um laço de repetição while para imprimir o valor de x enquanto x for < 10. Vejamos abaixo.


int  x  =  0;

// enquanto  x for menor do que 10 repita

while(x<10){

System.out.println("O valor de x eh : "+x);

x++; // aqui incrementamos 1 para x

}

System.out.println("Saiu do while ");

// O resultado será:
O valor de x é : 0
O valor de x é : 1
O valor de x é : 2
O valor de x é : 3
O valor de x é : 4
O valor de x é : 5
O valor de x é : 6
O valor de x é : 7
O valor de x é : 8
O valor de x é : 9                                                                                                     
Saiu do while
Pois quando x chegar a 10 não satisfará mais a condição do while e sairá do laço. Outra forma de fazer a mesma coisa seria usando um break. Vejamos outro exemplo.

int  x  =  0;

// entrará em um loop infinito , ou seja a condição será sempre            //  verdadeira

while(true){

// se x for maior ou igual a 10 forçar saida do laço

if (x>=10){

//força a saída do laço

break;

}

System.out.println("O valor de x eh : "+x);

x++; // aqui incrementamos 1 para x

}

System.out.println("Saiu do while ");
O resultado será:
O valor de x é : 0
O valor de x é : 1
O valor de x é : 2
O valor de x é : 3
O valor de x é : 4
O valor de x é : 5
O valor de x é : 6
O valor de x é : 7
O valor de x é : 8
O valor de x é : 9                                                                                                     
Saiu do while