sábado, 12 de outubro de 2013

Java como configurar o JDK.


 

Java como configurar o JDK.




    O JDK é um ambiente de desenvolvimento para construção de aplicações, applets, e componentes usando a linguagem de programação Java. O JDK inclui ferramentas para desenvolver e testar programas escritos na linguagem de programação Java e rodarem na plataforma Java.


    O primeiro passo que você deve dar é baixar o JDK nesse link, depois é só instalar que é uma tarefa muito fácil (next,next,finish). Depois de ter baixado e instalado o JDK você deve configurar a variável de ambiente.


Configurando a variável de Ambiente


    Você pode rodar o JDK sem configurar a variável de ambiente Path, ou você pode opcionalmente configura-la para que então você possa convenientemente rodar os arquivos executáveis do JDK (javac.exe,java.exe,javadoc.exe e assim por diante) de qualquer diretório sem ter que digitar o caminho completo do comando. Se você não configurar a variável Path, você precisará especificar o caminho completo de arquivo executável toda vez que você for executá-lo por exemplo:  


C:\> "C:\Arquivos de Programas\Java\jdk1.7.0\bin\javac" MinhaClasse.java. É bom configurar a variável Path permanentemente para persistir depois da reinicialização do sistema. 


    Para configurar a variável Path permanentemente, adicione o caminho completo do diretório jdk1.7.0\bin para a variável Path. Tipicamente, esse caminho completo é mais ou menos assim: C:\Arquivos de Programas\Java\jdk1.7.0\bin. Configure a variável Path para Microsoft Windows como segue abaixo:


    1. Clique em iniciar, depois Paindel de Controle depois em Sistema.


    2. Clique configurações avançadas do sistema depois em Variáveis de ambiente.


    3. Localize a variável Path em Variáveis do sistema e pressione editar então adicione a localização do diretório bin do JDK (instalado no sistema) para a variável Path em Variáveis do sistema. Normalmente o valor para a variável Path é: C:\Arquivos de Programas\Java\jdk1.7.0\bin (será adicionado após o ultimo ponto e vírgula)


     A variável de ambiente  Path é uma serie de diretórios separados por ponto e vírgula (;) e não é case-sensitiva (não verifica maiúsculas nem minúsculas). O Windows procurará por programas nos diretórios da variável Path em ordem da esquerda para direita.


    Você deverá ter apenas um diretório bin para um JDK no caminho de cada vez. Aqueles depois do


primeiro serão ignorados.


    Depois de ter confirmados todas essas alterações abra o prompt de comandos e digite javac uma tela como essa deverá ser apresentada:


    Feito isso você configurou a Variável de ambiente do Java.

Qualquer duvida comente sua dúvida que eu lhe responderei.


quinta-feira, 10 de outubro de 2013

Java Modificador static e Construtores


Java Modificador static e Construtores 

Duvidas sobre Modificadores e Construtores em Java?

então assista essa vídeo aula que explica de um jeito bem fácil de entender.







quarta-feira, 9 de outubro de 2013

Conceito de Objetos em Java!



Conceito de Objetos em Java!

Essa vídeo aula fala sobre Objetos , instâncias de Objetos e alocamento de memória.



segunda-feira, 25 de março de 2013

Modificador Static em Java


    Quando e porquê usar static? static é uma das palavras-chave do Java, e é também motivo de muita confusão e dúvidas entre o pessoal que esta começando. Aliás, mesmo os mais experienciados confundem-se às vezes em usar ela. O método static mais famoso de todos é o main. É através dele que vimos nosso primeiro programa em Java nascer, e é sempre via main que nossos programas criam vida. Por definição da linguagem Java, o método main precisa necessariamente ter acesso public, ser static, não retornar coisa alguma ( void ) e receber como argumento um array de String ( String args[] ):


public static void main(String args[])  


Entendendo static

    Como regra geral, tenha isso em mente: dentro de métodos static somente é possível pode acessar outros métodos e variáveis que também sejam static. Dentro do método pode-se definir qualquer tipo de variável, static ou não. Caso seja necessário acessar algum método ou membro não-static, é necessário criar uma instância da classe e então chamar o que quiser. Já o contrario é um pouco diferente: dentro de membros não-static, é possível acessar tanto propriedades static quanto as não-static. O fato de ser preciso primeiramente criar uma instância da classe para só então chamar algum método não-static ou acessar uma variável comum dentro de um método static deve-se ao fato que dentro dele não existe uma referência para o ponteiro this. O ponteiro this é utilizado para referenciar propriedades da classe em que estamos trabalhando. Por exemplo:


...  
// Variável simples, para guardar o nome  
private String nome;  
  
// Algum método comum  
public void meuMetodo()  
{  
    this.nome = "Fulano";  
}  
...


    No exemplo acima, this.nome = "Fulano" diz que estamos atribuindo ao membro da classe chamado nome o valor "Fulano". O uso de this é automático, portando o exemplo acima poderia ser escrito simplesmente da forma
...
// Variável simples, para guardar o nome  
private String nome;  
  
// Algum método comum  
public void meuMetodo()  
{  
    nome = "Fulano";  
}  
...

    Note que agora não mais usamos this, e funciona da mesma maneira. Se o método meuMetodo fosse static, o código acima não funcionaria, pois como foi dito antes, métodos static não possuem this. Ao contrário do que o nome soa, static não significa que a variável ou método sera estática do ponto de vista que seu valor não pode mudar ( final é usado para estes casos ). static nos garante que somente haverá uma, e não mais que uma, referência para determinada variável ou método disponível em mémoria. Em outras palavras, declarando alguma coisa como static, todas as instâncias da classe irão compartilhar a mesma cópia da variável ou método. Declarar algo como static também permite você acessar as coisas diretamente, ou seja, sem precisar criar uma instância da classe. Existe inclusive um Design Patter baseado no uso de static: Singleton.

Exemplificando

    Para entender melhor tudo o que foi dito, nada melhor que alguns exemplos práticos para ver com os próprios olhos o funcionamento. O primeiro exemplo consiste em uma classe com 2 variáveis, uma static e outra não-static. A cada novo objeto criado, incrementados ambas variáveis e imprimimos o resultado na tela. Digite o seguinte código em um arquivo chamado "TesteStatic.java":


// TesteStatic.java  
class Classe1  
{  
    // Variavel static  
    public static int contador = 0;  
  
    // Variavel nao-static  
    public int outroContador = 0;  
  
    public Classe1() {}  
  
    // Precisa ser static porque "contador" é static  
    public static void incrementaContador()  
    {  
        contador++;  
  
        System.out.println("contador agora é "+ contador);  
    }  
  
    public void incrementaOutroContador()  
    {  
        outroContador++;  
  
        System.out.println("outroContador agora é "+ outroContador);  
    }  
}  
  
public class TesteStatic  
{  
    public static void main(String args[])  
    {  
        Classe1 c1 = new Classe1();                       
        c1.incrementaContador();  
        c1.incrementaOutroContador();  
  
        Classe1 c2 = new Classe1();  
        c2.incrementaContador();  
        c2.incrementaOutroContador();  
          
        Classe1 c3 = new Classe1();  
        c3.incrementaContador();  
        c3.incrementaOutroContador();  
  
        Classe1 c4 = new Classe1();  
        c4.incrementaContador();  
        c4.incrementaOutroContador();  
    }  
}  

    A saida gerada por este programa será

  1. contador agora é 1  
  2. outroContador agora é 1  
  3. contador agora é 2  
  4. outroContador agora é 1  
  5. contador agora é 3  
  6. outroContador agora é 1  
  7. contador agora é 4  
  8. outroContador agora é 1  

    Note que a variavel "contador", que é static, não teve seu valor zerado a cada novo objeto criado da classe Classe1, mas sim incrementado, enquando "outroContador", que é uma variável comum, ficou sempre em 1, pois a zeramos o valor no construtor da classe.

Acesso direto
    Ao contrário de tipos de dados não-static, qualquer variável ou método static podem ser acessado diretamente, sem necessitar de uma instância da classe criada:



// TesteStatic2.java  
class Classe2  
{  
    // Escreve alguma frase na tela  
    public static void escreve(String msg)  
    {  
        System.out.println(msg);  
    }  
      
    // Retorna a multiplicação de dois números int  
    public static int multiplica(int n1, int n2)  
    {  
        return (n1 * n2);  
    }  
      
    // Construtor, apenas para mostrar que  
    // ele nem chega ser chamado  
    public Classe2()  
    {  
        System.out.println("Construtor de Classe2");  
    }  
}  
  
public class TesteStatic2  
{  
    public static void main(String args[])  
    {  
        Classe2.escreve("Multiplicando 3 vezes 3:");  
        int resultado = Classe2.multiplica(3, 3);  
        Classe2.escreve("Resultado: "+ resultado);  
    }  
}  


    Rode este programa e repare no resultado. Veja que o construtor da classe não foi chamado, pois não aparece na tela a string "Construtor de Classe2". Repare também que não criamos instância alguma de Classe2 para chamar seus métodos. Caso os métodos escreve e multiplica não fossem static, seria necessário fazer.



public class TesteStatic2  
{  
    public static void main(String args[])  
    {  
        Classe2 c2 = new Classe2();  
        c2.escreve("Multiplicando 3 vezes 3:");  
        int resultado = c2.multiplica(3, 3);  
        c2.escreve("Resultado: "+ resultado);  
    }  
}  


    Note que o código acima funciona perfeitamente mesmo com os métodos static. Isso funciona porque apesar de podermos chamar diretamente as coisas quando elas são static, não é obrigatório, podendo perfeitamente ser criada uma instância da classe e então chamar os métodos. O uso de static depende muito do caso, e conforme você vai pegando mais experiência, irá naturalmente identificar os lugares que precisam - ou que são mais convenientes - ao uso de tal palavra-chave

quinta-feira, 10 de janeiro de 2013

Para que serve um Modificador Abstract?

Modificador Abstract.

Um modificador abstract serve para impedir que uma classe de ser instanciada (criar uma nova instancia com new), os metodos abstratos não possuem  corpo.

Ex:  Uma classe com o modificador abstract;

   public class abstract Animal {

   public void come (String comida) {
  
     System.out.println(comida);

    }

}

public class TestAnimal {

public static void main (String [] args){

    Animal animal = new Animal();  // não será compilado porque a classe animal é abstrata;

    }

}


Um metodo abstrato  não tem corpo

Ex: 

 Se uma class tiver pelo menos um metodo abstrato a classe deve ser abstrata  e toda classe não abstrata que herdar da classe abstrata terá que implementar os metodos abstratos da Super classe.

  public class abstract Animal {  

   public abstract void come (); 

}

public class TestAnimal extends Animal {

public static void main (String [] args){

Neste caso como TestAnimal herda de Animal precisa implementar todos os metodos abstratos da superclasse Animal.

    public void come {
           // Aqui vai o codigo
        }
    }

}